簡體   English   中英

SQL獲取與max()關聯的列值

[英]SQL get column value associated with max()

我有下表

ID     Version         
---    ----------    
123      1           
124      2           
125      3           
126      4           
127      5           
128      6    

現在我需要獲取版本號最大的ID值

我能做的是

select ID from tbl where version = (select max(version) from tbl)

我不想使用它,因為我需要在另一個查詢中的聯接中使用這一部分,並且我不想進一步使事情復雜化。

您可以使用select FIRST()

SELECT FIRST(id) FROM tbl ORDER BY Version DESC

或使用LIMIT 1選項限制結果數:

SELECT id FROM tbl ORDER BY Version DESC LIMIT 1

您提到在聯接中需要此功能,因此應執行以下操作

select *
from table_1 as t1
  join (
      select id, 
             row_number() over (order by version desc) as rn
      from table_2
  ) as t2 on t1.id = t2.id and t2.rn = 1

(這是ANSI SQL,因為您沒有提到DBMS-但應該在大多數現代DBMS上都可以使用)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM