SQL - agregační funkce GROUP, SUM, COUNT, HAVING, CONCAT, DISTICT

SQL - agregační funkce GROUP, SUM, COUNT, HAVING, CONCAT, DISTICT

V SQL je možné využít několik nativních (agregačních) funkcí, nyní se na ně podíváme.

 

HAVING

Klauzule HAVING je agregační podmínka a provádí se až po WHERE a GROUP BY. Používá se tedy pro další zagregování získaných (již vypočítaných) výsledků.

Typické je např. použití, kdy se v SELECT použije např. COUNT() a SUM() (či jiná agregační funkce) a na tyto již vypočítané hodnoty se provede podmínka HAVING:

Seskup všechny stejná jména (name) z tabulky table1 a vypiš pouze ta, která se vyskytují více než 10x

SELECT COUNT(id), name
FROM table1
GROUP BY name
HAVING COUNT(id) > 10;

 

CONCAT

CONCAT je funkce na slučování řetězců.

Příklad:

SELECT CONCAT("id:", id, " name: ",  name)
FROM table1

Vypíše: id:1 name: First

 

DISTINCT

Funkce DISTINCT vrátí jen rozdílné záznamy.

Příklad:

SELECT DISTINCT name
FROM table1

 

Další agregační funkce letem světem

ORDER BY

Seřazení hodnot dle sloupce vzestupně ASC či sestupně DESC

Příklad: Seřaď jména ve sloupci name vzestupně

SELECT name FROM table1 ORDER BY name ASC;

 

GROUP BY

Seskupení shodných hodnoty ve sloupci

Příklad: Seskup všechna stejná jména ve sloupci name

SELECT name FROM table1 GROUP BY name;

 

LIMIT

Omezení počtu řádků (výsledků, záznamů)

Příklad: Vrať 10 záznamů

SELECT name FROM table1 LIMIT 10;

 

OFFSET

Omezení počtu řádků (výsledků, záznamů) včetně posunu od začátku (offsetu)

Příklad: Vrať 10 záznamů (LIMIT) a přeskoč prvních 20 záznamů (OFFSET) - typicky se používá OFFSET pro stránkování výsledků.

SELECT name FROM table1 LIMIT 10 OFFSET 20;



 

MIN()

Nejnižší hodnota

Příklad: Vrať nejnižší hodnotu ze sloupce id

SELECT MIN(id) FROM table1;

 

MAX()

Nejvyšší hodnota

Příklad: Vrať nejvyšší hodnotu ze sloupce id

SELECT MAX(id) FROM table1;

 

AVG()

Průměr hodnot

Příklad: Vrať průměrnou hodnotu ze sloupce id

SELECT AVG(id) FROM table1;

 

SUM()

Součet hodnot (suma)

Příklad: Vrať sumu hodnot ze sloupce id

SELECT SUM(id) FROM table1;

 

COUNT()

Počet řádků (výsledků, záznamů)

Příklad: Vrať počet řádků ze sloupce id

SELECT COUNT(id) FROM table1;

 

Jak se ti článek líbil?

Komentáře (0)

Přidat komentář