sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL - klauzule GROUP BY nebo použít v agregační funkci

Dotaz, jako je tento (načítání všech nebo většiny řádků), je rychlejší pokud GROUP než se JOIN . Takhle:

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;

Tímto způsobem potřebujete mnohem méně operací spojení. A řádky tabulky cars nemusejí být nejprve vynásobeny připojením k mnoha uživatelům a poté seskupeny zpět, aby byly opět jedinečné.
Musí být seskupena pouze správná tabulka, což také zjednodušuje logiku.



  1. Jak odstranit z výběru v MySQL?

  2. Přidání databázového poštovního účtu do profilu (T-SQL)

  3. Top 50 otázek k pohovoru o SQL Serveru, které si musíte připravit v roce 2022

  4. Funkce MySQL GREATEST() – Najděte největší argument v seznamu argumentů