C# 查询以获取每种类型的最大Id
我需要从每种特定类型中获取最大X.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。 我不想运行多个查询。 我知道如何使用子查询和多个查询 我想知道如
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条件(如果是关于规则列)。调整了代码