[英]Usage of Group By and Order By in Mysql
我试图从中读取的表
在这里,我试图读取具有最新TransactionDate并按StackHistoryID分组的行。
因此,我想到先使用“由TransactionDate desc排序”,然后最新行将排在最前面,如果在之后使用group by,它将给出我想要的内容。 但我认为,在使用orderby之后,我们不能再使用groupby。 所以我在这里打了个招,有没有办法用一个查询就能得到我想要的东西。
更新:
select ID, Max(TransactionDate) from Stacks group by StackHistoryID
但是此输出中第一行的ID应该为9。
使用MAX()
select StackHistoryID, Max(TransactionDate)
from Stacks
group by StackHistoryID;
和简单的ID查询,使用MAX; (如果ID是递增的,即ID较高,则日期不能短):
select Max(ID),StackHistoryID, Max(TransactionDate)
from Stacks
group by StackHistoryID;
而且,如果您的ID不能与日期一起递增,即您可以使用较低的ID来获得较高的ID ...则可以执行以下操作:
select alls.ID, s.StackHistoryID, s.TransactionDate
from
(
select StackHistoryID as StackHistoryID,
Max(TransactionDate) as TransactionDate
from stacks
group by StackHistoryID desc
) s, Stacks alls
where
alls.StackHistoryID = s.StackHistoryID
and
alls.TransactionDate = s.TransactionDate
order by StackHistoryID
;
如果你想对所有数据stackhistoryid
与transactiondate
排序。 然后去。
select * from stacks order by StackHistoryID, TransactionDate desc;
如果只需要最新日期,请使用@MrSimpleMind
指定的@MrSimpleMind
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.