给定以下数据:

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),一个访问发生了3次(1)。

谢谢

最佳答案

以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

关于mysql - 如何使用SQL输出数据出现的次数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3091515/

10-10 01:44