我有一个表格Mbr,其中包含3个字段GroupType
,LeaderID
和MemberID
。基本上,组织中的所有成员都被划分为这些组,由领导者的唯一ID (LeaderID
)标识。每个成员记录也有自己的MemberID
,领导者自己也有一个独特的MemberID
。 GroupType
仅指定该成员所在的群组是Large
,Small
还是Individual
群组。
我需要找出每个GroupType
包含一定数量成员的组数
例如:
是否可以进行查询以获取每个MemberID
的唯一group
的计数,然后获得COUNT
的{{1}}个LeaderID
有一定数量的成员与他们相关联吗?
答案 0 :(得分:0)
我确定你可以用几个子查询编写一些复杂的查询来创建一个查询来给你你想要的东西,但我个人喜欢更简单的方法。在这种情况下,它将使用一些临时表来存储中间值。我将首先按几列(您将用作标准)进行分组,其中count是查询的值。然后我将这些存储到临时表中,最后创建一个查询,以利用临时表为您提供所需的结果。
答案 1 :(得分:0)
注意:由于您没有指定正在使用的DBMS
,我尝试进行基本查询。在SQLServer
或Oracle
中,这可以更加优雅。
如果这是正确的话,我假设给定的Member
只能Leader
Group
只有一个SELECT GroupType, NumberOfMembers, COUNT(LeaderID) AS NumberOfGroups
FROM (
SELECT GroupType, LeaderID, COUNT(*) AS NumberOfMembers
FROM MyTable
GROUP BY GroupType, LeaderID
) AS InnerGrouping
GROUP BY GroupType, NumberOfMembers
ORDER BY GroupType, NumberOfMembers
,
问题#1:
SELECT UniqueMemberIDPerGroup, COUNT(LeaderID) AS NumberOfLeaderID
FROM (
SELECT LeaderID, COUNT(DISTINCT MemberID) AS UniqueMemberIDPerGroup
FROM MyTable
GROUP BY LeaderID
) AS InnerGrouping
GROUP BY UniqueMemberIDPerGroup
问题#2:
{{1}}