繁体   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