簡體   English   中英

查詢以獲取每種類型的最大ID

[英]Query to get max Id from each Kind

我需要從每種特定種類中獲取最大X.Id,例如:

表:

Id | Kind
---------
1  |  20
2  |  20
3  |  15
4  |  15
---------

我的查詢需要獲取ID 2和4,因為我的類型是15和20,所以這是我當前的查詢:

SELECT max(Id)
   FROM X
WHERE KIND = 15 or KIND = 20

但是此查詢僅返回id4。我需要2和4,每種類型的最大ID。 我不想運行多個查詢。 有了子查詢和多個查詢,我知道該怎么做。

我想知道如何只處理一個查詢。

誰能幫我?

您需要添加GROUP BY子句:

SELECT max(Id) as ID
   FROM X
WHERE KIND = 15 or KIND = 20
GROUP BY KIND

結果將是:

ID 
-----
2
4  

建議

為了簡單起見,可以使用IN

SELECT max(Id) as ID
   FROM X
WHERE KIND IN (15,20)
GROUP BY KIND

您必須按group by kind使用

按條款分組

SELECT max(Id)
FROM X
WHERE KIND = 15 or KIND = 20
group by Kind
order by 1

SQL小提琴

Create table Test (Id int, Kind int)
Insert Test(Id,Kind) Values (1, 20)
Insert Test(Id,Kind) Values (2, 20)
Insert Test(Id,Kind) Values (3, 15)
Insert Test(Id,Kind) Values (4, 15)
Insert Test(Id,Kind) Values (5, 10)
Insert Test(Id,Kind) Values (6, 10)

Select * from Test

Select MAX(Id) from Test
Where Kind in (20, 15)
Group by Kind

Select MAX(Id) from Test
Group by Kind
Having Kind in (20, 15)

Drop Table Test
SELECT max(Id), KIND
   FROM X
Group by KIND

暫無
暫無

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

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