効率的なデータ集約のための COUNT と GROUP BY の組み合わせ
SQL は、単一のステートメント内でカウント操作とグループ化操作の両方を実行する強力なメカニズムを提供します。これは、データセット内のさまざまな値の頻度を判断する必要がある場合に特に役立ちます。たとえば、さまざまな町に居住するユーザーの数を計算します。
重要なのは、COUNT
集計関数を GROUP BY
句と組み合わせて使用することです。 これを実現する方法は次のとおりです:
<code class="language-sql">SELECT town, COUNT(*) AS UserCount FROM user GROUP BY town;</code>
このクエリは、一意の各 town
値の出現をカウントします。 GROUP BY
句により、カウントが町に従ってグループ化され、各町と対応するユーザー数を示す概要が得られます。 このシナリオでは、COUNT(*)
を使用する方が COUNT(town)
より効率的です。
出力は、town
と UserCount
の 2 つの列を持つテーブルになります。UserCount
は各町のユーザーの総数を表します。 たとえば、3 つの町 (コペンハーゲン、ニューヨーク、アテネ) と合計 58 人のユーザーの場合、結果は次のようになります:
Town | UserCount |
---|---|
Copenhagen | 20 |
New York | 20 |
Athens | 18 |
また、変数を使用して合計ユーザー数を保存し、それを結果セットに含めることもできます。
<code class="language-sql">DECLARE @TotalUsers INT; SELECT @TotalUsers = COUNT(*) FROM user; SELECT DISTINCT town, @TotalUsers AS TotalUserCount FROM user;</code>
このアプローチでは、ユーザーの合計数を計算し、この合計を出力内の各町の横に表示します。 この方法では、町ごとに合計ユーザー数が繰り返されることに注意してください。 一般に、グループ化されたカウントが必要な場合は、明確さと効率の点で最初の方法が推奨されます。
以上が単一の SQL ステートメントでデータを同時にカウントおよびグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。