选择具有至少3个不同值的列的重复行中的行值

时间:2013-10-24 11:43:23

标签: sql sqlite

我有一张这样的表

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,

2 个答案:

答案 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