如何计算一组返回的组数?

Rob*_*_UK 8 mysql group-by count

select count(*) as count from table
group by foreign_id order by count 
Run Code Online (Sandbox Code Playgroud)

这将返回每个外部ID的多个匹配项.然而,我正在寻找的是总结结果.

结果将是:

10 results grouping 1 elements
5  results grouping 2 elements
7  results grouping 7 elements
Run Code Online (Sandbox Code Playgroud)

Mos*_*cho 13

好的,我知道了.问题的标题比问题本身更好地表达了它:)

您需要先了解每个FK出现的次数:

select count(*) as GroupAmount from t1
group by foreign_id
Run Code Online (Sandbox Code Playgroud)

一旦你有了这个,你必须将它们分组,以获得每个项目出现的次数与上面相同.这将导致:

select GroupAmount, count(*) GroupAmountTimes from (
  select count(foreign_id) as GroupAmount from t1
  group by foreign_id
) as SubQuery
group by GroupAmount
Run Code Online (Sandbox Code Playgroud)

这里看到它


小智 5

计算组返回的组数:

select foreign_id as GroupAmount, count(foreign_id) as GroupAmountTimes
from t1
group by foreign_id
Run Code Online (Sandbox Code Playgroud)

http://sqlfiddle.com/#!2/35661/42