1. ホーム
  2. sql

[解決済み】countとgroup byを同じselect文で使用する方法

2022-04-02 08:53:12

質問

SQLのselectクエリにgroup byがあります。 私はgroup by文の後にすべてのレコードをカウントしたいです。 sqlから直接これを行う方法はありますか? 例えば、ユーザーを持つテーブルがあり、異なる町とグループ化されたレコードを選択したいとします。 合計 ユーザー数

select town, count(*) from user
group by town

すべての町を示す列と、すべての行のユーザー数を示す列を持ちたいのですが。

3つの町と58人のユーザーを持つ場合の結果の例です。

Town         Count
Copenhagen   58
NewYork      58
Athens       58

解決方法は?

これは、あなたが望むこと(町のリスト、それぞれのユーザー数)を行います。

select town, count(town) 
from user
group by town

ほとんどの アグリゲート関数 を使用する場合 GROUP BY :

( COUNT , MAX , COUNT DISTINCT など)

更新情報 (質問とコメントの変更に伴い)

ユーザー数の変数を宣言して、それをユーザー数に設定し、それを使って選択することができます。

DECLARE @numOfUsers INT
SET @numOfUsers = SELECT COUNT(*) FROM user

SELECT DISTINCT town, @numOfUsers
FROM user