簡體   English   中英

如何按列b選擇組順序的鍵,其中列b未排序

[英]How to select the key of a group order by column a where a column b is not ordering

是否可以選擇按行line_to排序的組的id,其中列obj_id也沒有按順序排序?

所以我的測試數據的結果應該是200,因為帶有obj_id 25的line_no 2后面是帶有obj_id 12的line_no 3.而因為帶有obj_id 11的line_no 1后面是帶有obj_id 10的line_no 2。

數據庫是PostgreSQL 9.2

提前致謝

DROP TABLE data;

CREATE TABLE data (id int NOT NULL, line_no int NOT NULL, obj_id int, PRIMARY KEY (id, line_no));

INSERT INTO data VALUES 
  (100, 1, 11),
  (100, 2, 12),
  (100, 3, 15), 
  (100, 4, 18), 
  (200, 1, 11),
  (200, 2, 25),
  (200, 3, 12), 
  (200, 4, 18),
  (300, 1, 11),
  (300, 2, 10),
  (300, 3, 12), 
  (300, 4, 18),
  (400, 1, 11),
  (400, 2, 23),
  (400, 3, 35), 
  (400, 4, 38);

SELECT id FROM data GROUP BY id;  -- must be extended, the result should be 200 and 300

一些簡單的SQL可以解決問題。

SELECT DISTINCT d1.id FROM data d1, data d2 WHERE d2.id = d1.id AND d2.line_no > d1.line_no and d2.obj_id < d1.obj_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM