W SQL funkcje agregujące służą do obliczania wartości zbiorczych dla wielu wierszy naraz. Jeśli kolumna ilosc_kodu przechowuje liczbę linii kodu napisanych przez każdego programistę w miesiącu, to "suma linii kodu wszystkich programistów" oznacza sumę wszystkich wartości z tej kolumny.
Poprawne zapytanie:
SELECT SUM(ilosc_kodu) FROM programisci;
Dlaczego to działa?
- FROM programisci wskazuje tabelę jako źródło danych.
- SUM(ilosc_kodu) dodaje wszystkie wartości liczbowe z kolumny ilosc_kodu i zwraca jedną liczbę jako wynik.
Dlaczego pozostałe odpowiedzi są błędne:
- Wariant z SUM(ocena) FROM ilosc_kodu miesza nazwy: sumuje inną kolumnę oraz używa ilosc_kodu jakby było tabelą, co jest niezgodne z opisem struktury.
- Wariant z COUNT(programisci) sprawdzałby liczbę elementów (zwykle liczbę wierszy lub nie-NULL w kolumnie), a nie sumę wartości. Dodatkowo ponownie wskazuje ilosc_kodu jako tabelę.
- Wariant z MAX(ilosc_kodu) zwróciłby największą liczbę linii kodu wśród programistów (rekord "najbardziej produktywny"), a nie łączną sumę.
Wskazówka egzaminacyjna: gdy w treści jest "suma", szukaj SUM(); gdy "ile rekordów", szukaj COUNT(); gdy "największa/najmniejsza wartość", szukaj MAX()/MIN(). Zawsze sprawdzaj też, czy w klauzuli FROM podano tabelę, a w nawiasie funkcji agregującej kolumnę.