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

Опростяване на заявка с LIMIT в подзаявка и клаузи WHERE, дублирани в подзаявката и външната заявка

Можете да използвате DENSE_RANK :

WITH cte AS (
  SELECT t.id AS trans_id,
         c.id AS customer_id,
         c.company,
         c.first_name,
         c.last_name,
         t.due,
         DENSE_RANK() OVER(ORDER BY c.company, c.first_name, c.last_name) rn
  FROM customers AS c
  JOIN transactions AS t ON t.customer_id = c.id
  WHERE t.due > 0 AND t.form_type = 'invoice'
)
SELECT * FROM cte WHERE rn <= 3;

DBFiddle Demo




  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

  2. Кой е най-ефективният начин за запазване на хиляди обекти?

  3. Създаване на потребител на PostgreSQL и добавянето им към база данни

  4. Функции с променлив брой входни параметри

  5. django test app error - Получих грешка при създаването на тестовата база данни:разрешението е отказано за създаване на база данни