我有一张这样的表
Ma Mi
-----
A b
A c
A c
A d
B b
B a
B a
B a
B a
C a
C b
我想制作一个只输出至少有3个不同“Mi”值的“Ma”值的选择,我尝试分组并且不同寻常,因为我想先将“Mi”分组,然后计算“马“与明显的”Mi“。
所以中间步骤是:
Ma Mi
-----
A b
A c
A d
B b
B a
C a
C b
那么我可以计算每个Ma的行数
在这种情况下,结果将是
Ma num
------
A 3
B 2
C 2
我只能选择A,因为它是唯一的等于或高于3。
结果:
Ma num
------
A 3
先谢谢你了!
L,
答案 0 :(得分:4)
要检查GROUP BY操作的结果,您必须使用HAVING:
SELECT Ma,
COUNT(DISTINCT Mi) AS Num
FROM ATableLikeThis
GROUP BY Ma
HAVING COUNT(DISTINCT Mi) >= 3
答案 1 :(得分:0)
请根据您的要求查询:
Select Distinct MyTable.Ma,
(Select Count(Distinct MyTableAlias.Mi) From MyTable As MyTableAlias Where MyTableAlias.Ma = MyTable.Ma) As Num from MyTable WHere (Select Count(Distinct MyTableAlias.Mi) From MyTable As MyTableAlias Where MyTableAlias.Ma = MyTable.Ma) >= 3