繁体   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