MySQL计算结果集的返回计数

时间:2011-10-21 17:47:51

标签: mysql sql

我当前的查询如下所示:

SELECT DISTINCT (member), count( UID ) AS numUID
FROM memberdata
GROUP BY Member
ORDER BY count( UID ) DESC

我回来了,看起来很像这样:

A name 1    175
A name 2    38
A name 3    37
A name 4    36
A name 5    36

我现在要做的是获取numUID的计数,在上面的示例中我可能得到如下结果:

**numUID**   **COUNT**
   175           1
   38            1
   37            1
   36            2

我搜索的范围很广,但我似乎无法获得将此查询正确放在一起所需的信息。任何帮助将不胜感激。

谢谢,

1 个答案:

答案 0 :(得分:3)

使用子选择和另一个GROUP BY:

SELECT numUID, COUNT(*)
FROM (
    SELECT member, count(UID) AS numUID
    FROM memberdata
    GROUP BY Member
) T1
GROUP BY numUID

我还应该警告你,你也在滥用DISTINCT。当您使用DISTINCT时,它始终会查看整行。写DISTINCT(x) , yDISTINCT x, y完全相同。使用GROUP BY时,保证每组只能获得一行。这里没有必要使用DISTINCT