我需要从每种特定种类获得max 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
但是这个查询只返回id 4.我需要2和4,每种类型的最大ID。 我不想运行多个查询。 使用子查询和多个查询,我知道该怎么做。
我想知道如何只处理一个查询。
任何人都可以帮助我吗?
答案 0 :(得分:2)
您需要添加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
答案 1 :(得分:1)
您必须使用 group by kind
<强> Group by Clause 强>
SELECT max(Id)
FROM X
WHERE KIND = 15 or KIND = 20
group by Kind
order by 1
答案 2 :(得分: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
答案 3 :(得分:0)
SELECT max(Id), KIND
FROM X
Group by KIND