首先,如果在其他地方問過這個問題,我很抱歉,因為我找不到任何解決方案。我得到的最好的是檢索最新的 1 條記錄或 2-3 條記錄。我更多的是根據最近的日期時間值搜索所有記錄(數字可能是動態的,可能是 1 或 2 或者可能是 50 )。嗯,所以基本上這里是問題,
我有一張表如下,
| API加載日期時間 | 行號 | 專案編號 | 價值 |
|---|---|---|---|
| 2021-07-13 15:09:14.620 | 1 | 專案1 | 101 |
| 2021-07-13 15:09:14.620 | 2 | 專案2 | 81 |
| 2021-07-13 15:09:14.620 | 3 | 專案3 | 111 |
| 2021-07-13 15:09:14.620 | 4 | 專案4 | 125 |
| 2021-05-05 04:46:07.913 | 1 | 專案1 | 99 |
| 2021-05-05 04:46:07.913 | 2 | 專案2 | 69 |
| 2021-05-05 04:46:07.913 | 3 | 專案3 | 105 |
| 2021-05-05 04:46:07.913 | 4 | 專案4 | 115 |
| ... | ... | ... | ... |
我想要做的是,寫一個查詢,它會根據日期時間為我提供所有最近的資料,所以在這種情況下,我應該得到以下結果,
| API加載日期時間 | 行號 | 專案編號 | 價值 |
|---|---|---|---|
| 2021-07-13 15:09:14.620 | 1 | 專案1 | 101 |
| 2021-07-13 15:09:14.620 | 2 | 專案2 | 81 |
| 2021-07-13 15:09:14.620 | 3 | 專案3 | 111 |
| 2021-07-13 15:09:14.620 | 4 | 專案4 | 125 |
RowId 顯示(顧名思義)給出特定日期時間塊的行數。這并不總是 4,它是基于接收到的資料動態的,因此可能是 1、2、4 甚至 50 ...
希望我能夠正確地傳達問題,感謝大家的閱讀,并預先感謝提供解決方案的人。
uj5u.com熱心網友回復:
您可以使用視窗函式row_number找出每個 projectid 的最新條目:
select * from (
select * , row_number() over (partition by projectid order by APILoadDatetime desc) rn
from tablename
) t where rn = 1
uj5u.com熱心網友回復:
select top 1 with ties *
from tablename
order by row_number()
over (partition by projectid order by APILoadDatetime desc) ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/351599.html
標籤:sql sql-server 约会时间
上一篇:EFCore5可以翻譯什么
