sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL - GROUP BY-klausul eller bruges i en aggregeret funktion

En forespørgsel som denne (henter alle eller de fleste rækker) er hurtigere hvis du GROUP før du JOIN . Sådan:

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;

På denne måde har du brug for langt færre join-operationer. Og rækkerne i tabellen cars behøver ikke først at blive multipliceret ved at slutte sig til mange brugere hver og derefter grupperes tilbage for at være unik igen.
Kun den rigtige tabel skal grupperes, hvilket også gør logikken enklere.



  1. 'datetime2' fejl ved brug af entity framework i VS 2010 .net 4.0

  2. Sådan returneres brøkdele sekunder fra en Datetime-værdi i Oracle

  3. MOD() Funktion i Oracle

  4. MySQL Oprettelse af tabeller med fremmednøgler giver fejlnr.:150