如何使用SQL输出数据发生的次数?

时间:2010-06-22 08:39:04

标签: mysql

鉴于以下数据:

visit_id
   1
   1
   1
   2
   3
   3
   4
   5

是否可以仅使用sql(实际上是mysql的方言,而不是其他编程语言中的循环)来输出:

total visits    number of visitor ids
       1             3
       2             1
       3             1

即。将数据分解为它们发生的次数?所以在上面的例子中,有3个访问ID只出现一次(2,4,5),一个访问id出现两次(3),一个出现三次(1)。

感谢

2 个答案:

答案 0 :(得分:4)

当然,它被称为分组。

select visit_id, count(visit_id) from visits group by visit_id

答案 1 :(得分:3)

以František的回答为基础

select acc.visitCount as total_visits,
       count(acc.visitCount) as number_of_visitor_ids
  from (
select visit_id, 
       count(visit_id) as visitCount
  from visits 
 group by visit_id
) acc
group by acc.visitCount