PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chọn N hàng có giá trị hỗn hợp

Bản trình diễn SQL Fiddle

Như bạn thấy, tôi tạo một group_id vì vậy group_id = 1 sẽ là TimeStamp nhỏ hơn cho mỗi cổng

Trường thứ hai là time_id vì vậy trong ORDER BY sau khi tôi chọn tất cả 1 mang tất cả 2,3,4 cho bất kỳ cổng nào.

   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

ĐẦU RA

| 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. SQL hai tiêu chí từ một nhóm

  2. Tôi có nên xóa trường id mặc định khi sử dụng khóa chính chuỗi trong Rails / Postgres không?

  3. Bảng truy vấn với tổng của TẤT CẢ các vị trí trước đó, không bao gồm vị trí hiện tại

  4. Postgres Khớp tất cả các giá trị mảng với cùng một cột với và điều kiện

  5. PostgreSQL:THAY ĐỔI GIỮA INTERVAL '10 NGÀY' VÀ ROW HIỆN TẠI