[英]SQL - get only row with min delta time between columns Items
在 DeltaTime 上使用 Rank() window function,然后在外部查詢中過濾 rank=1。
Select * From (
Select Item, Time1, Code, Time2, DeltaTime,
Rank() Over (Partition By Item Order By DeltaTime) as TimeRank
From Table1
)
Where TimeRank=1
如果有最低的平局,這將報告兩條記錄。 如果您只想要一條記錄以防出現平局,則將 row_number() function 替換為 rank() function。
或者,
您可以像這樣使用相關子查詢:
Select * From Table1 X
Where DeltaTime= (Select min(DeltaTime) From Table1 Y
Where X.Item=Y.Item)
這稍微更緊湊且更易於閱讀,但許多 DBMS 實現無法有效地執行它們。
如果我正確理解您的問題並且第一張圖片是您擁有的表格,您可以執行以下操作:
SELECT * FROM Table1 GROUP BY Item HAVING min(DeltaTime);
如果我正確理解您的問題並且第一張圖片是您擁有的表格,您可以執行以下操作:
SELECT * FROM Table1 GROUP BY Item HAVING min(DeltaTime);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.