sql >> Databáze >  >> RDS >> Oracle

GROUP BY bez agregační funkce

Tak funguje GROUP BY. Trvá několik řad a převádí je do jedné řady. Z tohoto důvodu musí vědět, co dělat se všemi spojenými řádky, kde mají některé sloupce (pole) různé hodnoty. To je důvod, proč máte dvě možnosti pro každé pole, které chcete VYBRAT:Buď je zahrňte do klauzule GROUP BY, nebo je použijte v agregační funkci, aby systém věděl, jak chcete pole zkombinovat.

Řekněme například, že máte tuto tabulku:

Name | OrderNumber
------------------
John | 1
John | 2

Když řeknete GROUP BY Name, jak to bude vědět, které OrderNumber se má zobrazit ve výsledku? Takže buď zahrnete OrderNumber do skupiny podle, což povede k těmto dvěma řádkům. Nebo použijete agregační funkci, která ukáže, jak zpracovat OrderNumbers. Například MAX(OrderNumber) , což znamená, že výsledkem je John | 2 nebo SUM(OrderNumber) což znamená, že výsledkem je John | 3 .



  1. Chyba hodnoty při importu dat do tabulky postgres pomocí psycopg2

  2. Jak nainstalovat balíček Python na Linux tak, aby byl nalezen již fungujícím rozšířením PostgreSQL 13 plpython3u?

  3. Jak přepnout databázi pomocí PostgreSQL

  4. Rozdělení miliardové tabulky fotbalových dat pomocí kontextu dat