gpt4 book ai didi

sql-server-2008 - 在 sql server 2008 中使用 order by 获取唯一记录

转载 作者:行者123 更新时间:2023-12-04 05:00:16 25 4
gpt4 key购买 nike

ID    OrderId  status
1 12 1
2 13 1
3 14 2
4 12 3
5 15 1
6 14 1

大家好,

尝试为上面的表构建 sql 查询以获得如下结果:
   OrderId  status
12 3
13 1
14 1
15 1

我想要带有最新状态代码的唯一 orderid

我试过这个查询
Select Distinct OrderID 
from OrdersStatusHistory
order by Status desc

获取记录但有重复的 orderid
Select OrderID, Status 
from Orders_Status_History
order by Status desc

但我收到一个错误:

ORDER BY items must appear in the select list if SELECT DISTINCT is specified.

最佳答案

select OrdersStatusHistory.* from OrdersStatusHistory
JOIN
(select OrderId, max(id) maxId
from OrdersStatusHistory
group by OrderId) t1
on OrdersStatusHistory.Id=t1.maxId
order by OrdersStatusHistory.OrderId

SQLFiddle demo

或者如果您需要突出 OrdeId 的最大状态
select OrderId,max(status)
from OrdersStatusHistory
group by OrderID
order by OrderId

关于sql-server-2008 - 在 sql server 2008 中使用 order by 获取唯一记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16231719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com