ホームページ > データベース > mysql チュートリアル > 単一の SQL ステートメントでデータを同時にカウントおよびグループ化するにはどうすればよいですか?

単一の SQL ステートメントでデータを同時にカウントおよびグループ化するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-19 00:07:08
オリジナル
622 人が閲覧しました

How Can I Count and Group Data Simultaneously in a Single SQL Statement?

効率的なデータ集約のための 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) より効率的です。

出力は、townUserCount の 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート