SELECT
も使用するSQL クエリがあり、句が結果セットをフィルターしたGROUP BY
後のすべてのレコードをカウントしたいと考えています。GROUP BY
これを SQL で直接実行する方法はありますか? たとえば、テーブルがあり、さまざまな町とユーザーの総数users
を選択したい場合:
SELECT `town`, COUNT(*)
FROM `user`
GROUP BY `town`;
すべての町を含む列と、すべての行のユーザー数を含む列を作成したいと思います。
3 つの町と合計 58 人のユーザーがいる場合の結果の例は次のとおりです。
町 | カウント |
---|---|
コペンハーゲン | 58 |
ニューヨーク | 58 |
アテネ | 58 |
ベストアンサー1
これで、必要な操作が実行されます(町のリストと、それぞれのユーザー数)。
SELECT `town`, COUNT(`town`)
FROM `user`
GROUP BY `town`;
ほとんど使えます集計関数GROUP BY
ステートメント(COUNT
、など)MAX
を使用する場合COUNT DISTINCT
更新:ユーザー数の変数を宣言し、そこに結果を保存してから、SELECT
変数の値を保存できます。
DECLARE @numOfUsers INT
SET @numOfUsers = SELECT COUNT(*) FROM `user`;
SELECT DISTINCT `town`, @numOfUsers FROM `user`;