2

現在のSQLステートメント:

SELECT count(installUserID) as userCount
  FROM installUsers
  group by installationID

現在の出力:

userCount
4
2
1
1
1
2
4
1
3
1

userCountが1、2などの回数を数えようとしています...

必要な出力の例:

userCount = 1, 5 times
userCount = 2, 2 times
userCount = 3, 1 times
userCount = 4, 2 times

私はインターネットを見回して、集約関数で、おそらくでできることがあると思っていますがgrouping、純粋なSQLでこれを実装する方法がまだわかりません。

4

2 に答える 2

3

または、CTE を使用することもできます。これはやり過ぎかもしれませんが、非常に便利です。

WITH count_cte(usercount)
AS
(
  SELECT COUNT(installUserID) AS userCount
  FROM installUsers
  GROUP BY installationID
)

SELECT  usercount  ,COUNT(usercount) AS times  FROM count_cte GROUP BY usercount
于 2012-08-03T18:10:54.010 に答える
3

カウントのカウントが必要なようです。これを行うには、外部選択を使用できます。

SELECT userCount, COUNT(*) AS userCountcount
FROM
(
    SELECT COUNT(installUserID) as userCount
    FROM installUsers
    GROUP BY installationID
) AS T1
GROUP BY userCount
ORDER BY userCount
于 2012-08-03T18:00:54.533 に答える