C# 查询以获取每种类型的最大Id

C# 查询以获取每种类型的最大Id,c#,sql,sql-server,C#,Sql,Sql Server,我需要从每种特定类型中获取最大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。 我不想运行多个查询。 我知道如何使用子查询和多个查询 我想知道如

我需要从每种特定类型中获取最大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。 我不想运行多个查询。 我知道如何使用子查询和多个查询

我想知道如何只处理一个查询


有人能帮我吗?

你必须使用
按种类分组

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

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

您必须使用
按种类分组

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

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

您需要添加
分组依据
子句:

SELECT max(Id) as ID
   FROM X
WHERE KIND = 15 or KIND = 20
GROUP BY KIND
结果将是:

ID 
-----
2
4  
建议

为了简单起见,您可以在中使用

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

您需要添加
分组依据
子句:

SELECT max(Id) as ID
   FROM X
WHERE KIND = 15 or KIND = 20
GROUP BY KIND
结果将是:

ID 
-----
2
4  
建议

为了简单起见,您可以在
中使用

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

用kind替换KING用kind替换KING按kind 15和20排序的过滤器在哪里?如果要将其作为计算参数,则应结合使用have和Group by,或者如果是关于规则列,则只需添加where条件。按类别15和20调整代码过滤器在哪里?如果要将其作为计算参数,则应结合使用HAVING和Group by,或者仅添加where条件(如果是关于规则列)。调整了代码