0

是否可以选择按列 line_to 排序的组的 ID,其中列 obj_id 也没有排序?

所以我的测试数据的结果应该是 200,因为 obj_id 为 25 的 line_no 2 后面跟着 obj_id 12 的 line_no 3。 300 因为 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
4

1 回答 1

2

一些简单的 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

于 2013-11-15T11:14:33.460 回答