PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menyederhanakan kueri dengan LIMIT dalam subkueri dan klausa WHERE diduplikasi dalam subkueri dan kueri luar

Anda dapat menggunakan 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;

Demo DBFiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Membuat Daftar Database dan Tabel di PostgreSQL Menggunakan psql

  2. Mengekstrak nama kunci dengan nilai sebenarnya dari objek JSONB

  3. Bagaimana cara membuat semacam iterator (atau id buatan) untuk serangkaian baris tertentu?

  4. Menjalankan skrip SQL melalui psql memberikan kesalahan sintaks yang tidak terjadi di PgAdmin

  5. Kesalahan format tanggal postgresql