我有以下優先級串列,其中 Source4 的優先級高于 3、3 高于 2、2 高于 1,依此類推。
| 源ID | 來源描述 |
|---|---|
| 1 | 來源 1 |
| 2 | 來源2 |
| 3 | 來源3 |
| 4 | 來源 4 |
我還有下面的資料表(但是該表將包含多個不同的 EventID)
| 事件ID | 開始時間 | 源ID |
|---|---|---|
| 12345 | 2021-10-24 11:27:34 | 1 |
| 12346 | 2021-10-24 11:27:34 | 1 |
| 12347 | 2021-10-24 11:27:34 | 1 |
| 12345 | 2021-10-24 12:58:55 | 3 |
| 12346 | 2021-10-24 12:58:55 | 3 |
| 12347 | 2021-10-24 12:58:55 | 3 |
| 12345 | 2021-10-24 10:58:00 | 2 |
| 12346 | 2021-10-24 10:58:00 | 2 |
| 12347 | 2021-10-24 10:58:00 | 2 |
如何根據優先級串列從上述日期中獲得最低日期。
在這種情況下,正確的結果集將是:
| 事件ID | 開始時間 | 源ID |
|---|---|---|
| 12345 | 2021-10-24 12:58:55 | 3 |
| 12346 | 2021-10-24 12:58:55 | 3 |
| 12347 | 2021-10-24 12:58:55 | 3 |
我試過做一個MIN OVER PARTITION BY ORDER BY SourceID DESC,但它一直回傳 2021-10-24 10:58:00 并忽略優先級 SourceID
uj5u.com熱心網友回復:
您可以rank根據您共享的示例來實作此目的
select
EventID,CommencingTime,SourceID
from (
select
*,
rank() over (order by SourceID DESC,CommencingTime) as rn
from
mytable
) t
where rn=1
在此處查看作業演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/343715.html
標籤:sql sql-server 查询语句 分钟
上一篇:如何在SQLServer中授予用戶CREATEDATABASE選項?
下一篇:使用聚合字串的SQL連接
