[英]How to get the last inserted value for every id in SQL Server 2008?
我必須從多個值中計算唯一狀態。 這是我的桌子的例子
Id Status OrderId
-------------------
1 1 43
2 2 43
3 1 44
所需的輸出
它應該給出Status '1' is 1
的計數(狀態)為Status '1' is 1
, Status '2' is 1
。 但是,當使用count時,其2 for status '1'
。
你必須做
count(DISTINCT status)
代替
count(status)
要得到
來自多個值的唯一狀態。
編輯:
如果要獲取 (而不是計數 )每個OrderId
的最后插入記錄的Status
值,則可以執行以下操作:
SELECT Status
FROM (
SELECT Id, Status, OrderId,
ROW_NUMBER() OVER (PARTITION BY OrderId
ORDER BY Id DESC) AS rn
FROM mytable ) t
WHERE t.rn = 1
如果要獲取每個訂單的最新status
:
with cte as(select *, row_number()
over(partition by OrderID order by Id desc) from TableName)
select * from cte where rn = 1
要么:
select * from (select *, row_number()
over(partition by OrderID order by Id desc) from TableName) t
where rn = 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.