PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL - klauzula GROUP BY lub być używana w funkcji agregującej

Zapytanie takie jak to (pobieranie wszystkich lub większości wierszy) jest szybsze jeśli GROUP zanim JOIN . Tak:

SELECT id, name, created_at, updated_at, u.ct
FROM   cars c
LEFT   JOIN (
    SELECT car_id, count(*) AS ct
    FROM   users
    GROUP  BY 1
    ) u ON u.car_id  = c.id
ORDER  BY u.ct DESC;

W ten sposób potrzebujesz znacznie mniej operacji łączenia. I wiersze tabeli cars nie trzeba najpierw mnożyć, łącząc się z wieloma użytkownikami, a następnie grupować z powrotem, aby ponownie były niepowtarzalne.
Tylko właściwa tabela musi być pogrupowana, co również upraszcza logikę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. org.hibernate.internal.util.config.ConfigurationException:nie można zlokalizować zasobu cfg.xml [/HibernateTest/src/hibernate.cfg.xml]

  2. Jak uzyskać PostgreSQL na serwerze VPS/serwerze dedykowanym?

  3. Identyfikator automatycznego przypisywania Railsów, który już istnieje

  4. O wydajności pglogicznej

  5. Postgresql Aktualny znacznik czasu w aktualizacji