0

我有一张这样的桌子

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”值,我尝试过 group by 和 distinct 失败,因为我想先对“Mi”分组,然后计算“Ma”独特的“弥”。

所以中间步骤是:

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.

4

2 回答 2

4

要检查 GROUP BY 操作的结果,您必须使用 HAVING:

SELECT Ma,
       COUNT(DISTINCT Mi) AS Num
FROM ATableLikeThis
GROUP BY Ma
HAVING COUNT(DISTINCT Mi) >= 3
于 2013-10-24T12:23:11.570 回答
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
于 2013-10-24T12:07:47.313 回答