我有以下以下我有三個記錄在DriverID「134」我想第二個最後的數據這個人怎麼幫助我如何獲得第二個最後的數據 和 你能否請幫助我如何從我的表排序每秒最後的記錄混帳的數據不止一個driverid 如何從driverid獲得第二個最後的記錄SQL服務器
0
A
回答
2
使用Row_Number()
窗口功能
With cte as
(
select *,Row_Number()over(order by Transdate desc) as Rn from yourtable
Where DriverID = 134
)
Select *
from cte
Where Rn = 2
要處理的時候,只有一個紀錄爲給DriverID
然後使用這個
With cte as
(
select *,Row_Number()over(order by Transdate desc) as Rn,
count(1)over() as cnt from yourtable
Where DriverID = 134
)
Select *
from cte
Where (Rn = 2 and cnt > 1) or (Rn = 1 and cnt = 1)
注:如果在最後一秒記錄領帶和你想同時記錄然後使用DENSE_RANK
代替ROW_NUMBER
更新:
要查找的倒數第二個記錄爲全部DriverID's
在Row_number
中添加分區並從Where
子句中刪除DriverID
子句
With cte as
(
select *,Row_Number()over(Partition by DriverID order by Transdate desc) as Rn,
count(1)over(Partition by DriverID) as cnt from yourtable
)
Select *
from cte
Where (Rn = 2 and cnt > 1) or (Rn = 1 and cnt = 1)
0
SELECT * FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY key DEC) AS rownumber,
columns
FROM tablename
) AS foo
WHERE rownumber <= 2
相關問題
- 1. 如何獲得最後一個記錄上第二個三聯接在SQL
- 2. 如何獲得第一個記錄和最後一個記錄
- 3. 第二個最後記錄
- 4. Mongoid - 如何獲得第二個記錄?
- 5. 如何獲得第二個記錄起
- 6. 從第二張表中獲得最後一條記錄
- 7. SQL服務器獲得最高紀錄
- 8. 如何獲得linq的第二條記錄到sql
- 9. 如何從配置單元中的記錄獲取第二個最後日期?
- 10. Laravel雄辯如何獲得第二或第三個記錄?
- 11. 如何獲得最後的記錄?
- 12. 如何從XML獲得SQL服務器
- 13. SQL - 如何從聯合表中獲取第一個和最後一個記錄?
- 14. 如何從sql查詢中獲取第一個和最後一個記錄?
- 15. 如何返回SQL中的第二個最新記錄?
- 16. 如何獲得最後10條記錄
- 17. 在SQL中每組獲得倒數第二個記錄
- 18. 如何使用WSO2 DSS從mongodb獲得第二條記錄?
- 19. 獲得最後一個記錄的freemarker
- 20. 的MySQL獲得最後一個記錄
- 21. 如何將SPF記錄調整到第二臺SMTP服務器?
- 22. 如何獲取DB的第一個和最後一個記錄
- 23. CMake - 如何獲取目錄名稱中的第二個最後?
- 24. 如何在插入記錄後從SQL服務器獲取標識值
- 25. 每月獲得最後一個記錄
- 26. 如何獲得每個主記錄的最後2個細節?
- 27. 如何從哈希中獲得最高的第二個值
- 28. SQL服務器獲得最大
- 29. 如何獲取Web服務中最後插入的記錄ID
- 30. SQL獲取第二筆記錄
你是比我快... +1但是:你可以使用<= 2搭上情況下,只有一個記錄......(取決於課程的現實需要) 。 – Shnugo
@Shnugo - 是的,你是對的。相應地更新了答案。我們不能使用<= 2,因爲它會拉動兩條記錄,當你有超過1條記錄給定'DriverID' –
你能幫我怎麼從我的表中填充數據每秒排序最後一條記錄多一個driverid –