• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Różnica w zapytaniach

Object Storage Arubacloud
0 głosów
99 wizyt
pytanie zadane 28 czerwca 2022 w SQL, bazy danych przez KonDZIKs Bywalec (2,770 p.)

Dzień dobry.
Przychodzę z pytaniem odnośnie dwóch zapytań.

Robię takie zadanko: Oblicz czy wartość zamówienia jest poniżej czy powyżej, średniej wartość zamówień.

Baza: AdventureWork

Ogólnie to zadanie jest rozwiązanie na stronie z której korzystam
Kod ze strony:

select salesorderid,
		subtotal,
		case
			when subtotal <
			(
				select 
					avg(subtotal) as srednia
				from
					sales.SalesOrderHeader
					) then 0
			else 1
			end as [0-1]

from sales.SalesOrderHeader

Mój:
 

select SalesOrderID,
		SubTotal,
		iif( subtotal < avg(subtotal), 1 , 0) as [0-1]
from sales.SalesOrderHeader
group by SalesOrderID,
		SubTotal

Rozumiem to w ten sposób ,że on wylicza w tym zagnieżdżonym select średnią zamówień a później ją przyrównuje. Dlaczego u mnie to nie działa jeżeli iif'em chce porównać dwie wartości?

komentarz 29 czerwca 2022 przez PreZmyK Pasjonat (21,470 p.)
select avg(subtotal) da inny wynik od group by SalesOrderID, SubTotal.
komentarz 5 lipca 2022 przez KonDZIKs Bywalec (2,770 p.)
Mógłbyś rozwinąć dlaczego?
komentarz 5 lipca 2022 przez PreZmyK Pasjonat (21,470 p.)
Pierwsza opcja porównuje z wynikiem średniej całej tabeli, a Twoje jest pogrupowane, dlatego będzie inny wynik.

Napisz 2 selecty i porównaj wyniki

select AVG(subtotal) from sales.SalesOrderHeader;

select avg(subtotal) from sales.SalesOrderHeader

group by SalesOrderID,SubTotal;

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
0 odpowiedzi 173 wizyt
pytanie zadane 3 sierpnia 2017 w SQL, bazy danych przez raf123 Nowicjusz (130 p.)
0 głosów
2 odpowiedzi 137 wizyt

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...