我尝试阅读的表格
这里我试图读取具有最新TransactionDate并按StackHistoryID分组的行。
所以我想首先使用“按TransactionDate desc排序”然后最新的行将是最高的,如果我之后使用group,它将给出我想要的东西。但我认为,使用orderby后我们不能使用groupby。所以我来到这里,是否有任何方法可以使用单个查询获得我想要的东西。
更新:
select ID, Max(TransactionDate) from Stacks group by StackHistoryID
但此输出中第一行的ID应为9.
答案 0 :(得分:1)
使用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 ...那么您可以执行以下操作:
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
;
答案 1 :(得分:0)
如果您希望stackhistoryid
的{{1}}的所有数据都已排序。然后去。
transactiondate
如果您只需要最新日期,请查看select * from stacks order by StackHistoryID, TransactionDate desc;