Menu
Coddy logo textTech

Wbudowane funkcje agregujące — część 2

Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 35 z 72.

Czasami musimy używać funkcji agregujących w bardziej złożony sposób, na przykład porównując każdy wiersz z wartością agregującą. W takich sytuacjach przydają się zapytania zagnieżdżone.

Gdy chcesz wykonać obliczenia łączące poszczególne wiersze z wartościami zagregowanymi, musisz użyć zagnieżdżonego zapytania. Oto dlaczego:
To nie da wyniku dla każdego wiersza, którego oczekujesz:

SELECT value + MIN(value)
FROM table1

Powodem jest to, że funkcje agregujące działają na całej kolumnie, podczas gdy odwołanie do „value” próbuje działać wiersz po wierszu. Aby to rozwiązać, używamy zapytania zagnieżdżonego:

SELECT value + (SELECT MIN(value) FROM table1)
FROM table1

Działa to, ponieważ zagnieżdżone zapytanie (SELECT MIN(value) FROM table1) jest wykonywane jako pierwsze i zwraca pojedynczą wartość, której można następnie użyć w zapytaniu głównym dla każdego wiersza.

Typowe zastosowania agregatów zagnieżdżonych:
1. Porównywanie każdej wartości ze średnią

2. Obliczanie procentu całości

3. Znajdowanie różnic względem wartości maksymalnych lub minimalnych

challenge icon

Wyzwanie

Łatwy

Dostępne tabele i kolumny:

  • items: id, price

Oblicz, o ile cena każdego przedmiotu przekracza średnią cenę wszystkich przedmiotów. Wyświetl identyfikator przedmiotu, jego cenę oraz różnicę względem średniej. Nazwij kolumnę z różnicą diff_from_avg.

Uporządkuj wyniki według różnicy w kolejności malejącej.

Spróbuj swoich sił

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online SQL