[英]Query to get max Id from each Kind
I need to get max X.Id from each Specific kind, Example: 我需要从每种特定种类中获取最大X.Id,例如:
Table: 表:
Id | Kind
---------
1 | 20
2 | 20
3 | 15
4 | 15
---------
My query needs to get the Ids 2 and 4, because my kinds are 15 and 20, this is my current query: 我的查询需要获取ID 2和4,因为我的类型是15和20,所以这是我当前的查询:
SELECT max(Id)
FROM X
WHERE KIND = 15 or KIND = 20
But this query only returns id 4. I need 2 and 4, the max Id for each kind. 但是此查询仅返回id4。我需要2和4,每种类型的最大ID。 I don't want to run more than one query.
我不想运行多个查询。 With subqueries and more than one query I know how to do.
有了子查询和多个查询,我知道该怎么做。
I would like to know how to do with only one query. 我想知道如何只处理一个查询。
Can anyone help me? 谁能帮我?
You need to add GROUP BY
clause: 您需要添加
GROUP BY
子句:
SELECT max(Id) as ID
FROM X
WHERE KIND = 15 or KIND = 20
GROUP BY KIND
The result will be: 结果将是:
ID
-----
2
4
Suggestion 建议
You can use IN
for simplicity: 为了简单起见,可以使用
IN
:
SELECT max(Id) as ID
FROM X
WHERE KIND IN (15,20)
GROUP BY KIND
You have to use group by kind
您必须按
group by kind
使用
SELECT max(Id)
FROM X
WHERE KIND = 15 or KIND = 20
group by Kind
order by 1
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.