[英]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.