繁体   English   中英

唯一选择查询上的结果顺序问题

[英]problem with result order on distinct select query

我有这样的桌子

id name date   group_id  
 1  n1   1     1
 2  n2   1     1
 3  n4   2     2
 4  n5   2     2 

我想写一个查询以返回group_id,而没有按日期ASC排序的重复项

$query = " SELECT DISTINCT group_id FROM table ORDER BY date ASC";

该查询将返回2,1,但该查询仅考虑每个group_id的第一行的日期以对结果进行排序

如果我有这样的桌子

id name price  date   group_id  
 1  n1   2300    1     1
 2  n2   3000    3     1
 3  n4   4000    2     2
 4  n5   2000    2     2 

第二个以'1'作为group_id的行具有最大的日期,因此我应该得到1,2作为结果,但是查询并不关心第二个具有'1'group_id的行,并且仍然返回2,1,它只关心第一行每个ID的排序结果

希望有一个简单的方法来解决这个问题,我不需要做任何奇怪的事情,例如将所有内容放入2d数组中并排序,然后删除重复项

尝试这个

select group_id,max(date) as SortDate
from table
group by group_id
order by SortDate

如果我了解您的问题,听起来您需要先按日期分组。

SELECT group_id
FROM (
SELECT
    group_id,
    min(date) as min_date
FROM table
GROUP BY group_id
) as t
ORDER BY t.min_date;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM