Oracle
 sql >> Baza danych >  >> RDS >> Oracle

GROUP BY bez funkcji agregującej

Tak działa GROUP BY. Zajmuje kilka rzędów i zamienia je w jeden rząd. Z tego powodu musi wiedzieć, co zrobić ze wszystkimi połączonymi wierszami, w których występują różne wartości dla niektórych kolumn (pól). Dlatego masz dwie opcje dla każdego pola, które chcesz WYBRAĆ:albo uwzględnij je w klauzuli GROUP BY, albo użyj w funkcji agregującej, aby system wiedział, jak chcesz połączyć pole.

Załóżmy na przykład, że masz ten stół:

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

Jeśli powiesz GROUP BY Name, skąd będzie wiedzieć, który numer zamówienia ma być wyświetlany w wyniku? Więc albo dołączasz OrderNumber do grupy według, co spowoduje powstanie tych dwóch wierszy. Lub możesz użyć funkcji agregującej, aby pokazać, jak obsługiwać OrderNumbers. Na przykład MAX(OrderNumber) , co oznacza, że ​​wynikiem jest John | 2 lub SUM(OrderNumber) co oznacza wynik John | 3 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najpopularniejsze zapytania dotyczące znalezienia poprawki zastosowanej w aplikacjach Oracle

  2. utwórz niestandardową funkcję dla różnicy dat z wyłączeniem weekendów i świąt w Oracle sql

  3. Przykład instrukcji Oracle FOR LOOP SELECT

  4. automatyzacja wyrocznia skryptu wycofywania

  5. SPRAWDŹ ograniczenie daty urodzenia?