gpt4 book ai didi

sql-server - 限制查询中的记录

转载 作者:行者123 更新时间:2023-12-02 20:25:48 25 4
gpt4 key购买 nike

这是我的查询

SELECT 
[MO].[Id] AS [ObjectId],
[CA].[Id] As [CategoryId],
[GR].[Id] AS [GroupId]
FROM [MYOBJECT] AZ [MO]
INNER JOIN [Category] AS [CA] ON [CA].[Id] = [MO].[CategoryId]
Inner Join [Group] AS [GR] ON [GR].[CategoryId] = [CA].[ID]

结果是:

ObjectId    CategoryId   GroupId
-----------------------------------
1 1 1
1 2 2
2 1 1
2 2 2

但是我需要 ObjectId 上的 Distinct 我的意思是 categoryidgroupid 对我来说并不重要,我需要如下所示的内容:

 ObjectId    CategoryId   GroupId
-----------------------------------
1 1 1
2 1 1

或者

ObjectId    CategoryId   GroupId
-----------------------------------
1 2 2
2 1 1

以上两个结果对我来说都很好,而且正如您所看到的那样,它们都是真实记录(如您在第一个查询中看到的)

那么,我怎样才能得到这个结果呢?最快的方法是什么?有什么建议吗?

最佳答案

使用GROUP BY并在其他列上使用一些聚合函数:

SELECT 
[MO].[Id] AS [ObjectId],
MIN([CA].[Id]) As [CategoryId],
MIN([GR].[Id]) AS [GroupId]
FROM [MYOBJECT] AZ [MO]
INNER JOIN [Category] AS [CA] ON [CA].[Id] = [MO].[CategoryId]
Inner Join [Group] AS [GR] ON [GR].[CategoryId] = [CA].[ID]
GROUP BY [MO].[Id]

关于sql-server - 限制查询中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com