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

Pilih N Baris Dengan Nilai Campuran

Demo Fiddle SQL

Seperti yang Anda lihat, saya membuat group_id jadi group_id = 1 akan menjadi TimeStamp yang lebih kecil untuk setiap port

Kolom kedua adalah time_id jadi di ORDER BY setelah saya pilih semua 1 bawa semua 2,3,4 untuk port apa pun.

   SELECT *
   FROM (
         SELECT *, 
            row_number() over (partition by "port" order by "insertTimeStamp") group_id,
            row_number() over (order by "insertTimeStamp") time_id
         FROM Table1 T
   ) as T
   ORDER BY CASE 
               WHEN group_id = 1 THEN group_id
               ELSE time_id
            END
   LIMIT 4

OUTPUT

| insertTimeStamp | port | data | group_id | time_id |
|-----------------|------|------|----------|---------|
|               1 |   20 |  aaa |        1 |       1 |
|               2 |   21 |  aza |        1 |       3 |
|              15 |   22 |  2aa |        1 |       8 |
|               2 |   20 |  aba |        2 |       2 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tambahkan batasan untuk membuat kolom unik per grup baris

  2. Salin beberapa kolom file csv ke dalam tabel

  3. Ekstrak tanggal (yyyy/mm/dd) dari stempel waktu di PostgreSQL

  4. Apa perbedaan antara pg_table_size, pg_relation_size &pg_total_relation_size? (PostgreSQL)

  5. eksekusi root dari server PostgreSQL tidak diizinkan