Menu
CoddyTech

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 wykonywać obliczenia łączące pojedyncze 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 zagnieżdżonego zapytania:

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

To działa, 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 elementu przekracza średnią cenę wszystkich elementów. Wyświetl identyfikator elementu, jego cenę i 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