PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL - клауза GROUP BY или да се използва в агрегатна функция

Заявка като тази (извличане на всички или повечето редове) е по-бърза ако GROUP преди да JOIN . Като това:

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;

По този начин имате нужда от много по-малко операции за присъединяване. И редовете на таблицата cars не е нужно първо да се умножава чрез присъединяване към много потребители всеки и след това групиране обратно, за да бъде отново уникално.
Трябва да бъде групирана само дясната таблица, което също прави логиката по-лесна.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL, SQL състояние:42601

  2. Как да създадете уникален индекс, където редът на колоните не се взема предвид (задава?)

  3. Как pgBouncer помага за ускоряване на Django

  4. Преглед на новите съхранени процедури в PostgreSQL 11

  5. postgres:надстройване на потребител до суперпотребител?