0

これは私のデータベース テーブルです。たとえば、5 人が 5 回訪問した場合、20 人が 7 回訪問した場合など、ユーザーごとの一意の訪問回数をカウントしたいと考えています。

これが私のクエリです

SELECT count(*) as count 
FROM `tbl_track` 
GROUP BY `user_id`

その結果は (1 人が 2 回訪問 + 1 人が 2 回訪問 + 1 人が 1 回訪問)

Count
2
2
1

結果が欲しい(2人来店2回+1人来店1回)

Count
2
1
4

3 に答える 3

1
SELECT count(*) as `count`, `visit_times` 
FROM (
  SELECT count(*) as `visit_times` 
  FROM `tbl_track` 
  GROUP BY `user_id`
) AS t GROUP BY `visit_times`
于 2012-09-26T07:18:08.317 に答える
1

これを試して:

select cnt as user_count,COUNT(*) as count
from
(
SELECT   COUNT(*) as cnt 
FROM tbl_track 
GROUP BY userid)a
group by cnt


SQL フィドルのデモ

于 2012-09-26T07:18:44.503 に答える
0

これを試して:

SELECT DISTINCT VisitsCount
FROM
(
    SELECT COUNT(*) AS VisitsCount
    FROM TableName
    GROUP BY UserId
) T
于 2012-09-26T07:17:09.887 に答える