SQL Serverを使用してデータベース内の犬情報を集計する際、犬種ごとに何匹の犬がいるかを把握することは基本的な分析のひとつです。この記事では、GROUP BY句を使って犬種別の集計を行う方法を具体例とともに解説します。
基本的なGROUP BYの構文
SQL Serverで特定の列で集計する場合、GROUP BYを使用します。基本的な構文は以下の通りです。
SELECT 列名, COUNT(*) AS 集計名 FROM テーブル名 GROUP BY 列名;
この構文では、指定した列ごとにレコードをグループ化し、各グループの件数をCOUNT関数で集計します。
犬テーブルでの具体例
例えば、Dogsというテーブルがあり、Breed列に犬種が入っている場合、犬種ごとの頭数を集計するSQLは以下のようになります。
SELECT Breed, COUNT(*) AS NumberOfDogs FROM Dogs GROUP BY Breed;
このクエリを実行すると、各犬種とその犬の数が一覧で表示されます。
集計結果の応用
集計結果を使って、多い順に並べたい場合はORDER BYを組み合わせます。
SELECT Breed, COUNT(*) AS NumberOfDogs FROM Dogs GROUP BY Breed ORDER BY NumberOfDogs DESC;
これにより、最も多い犬種から順に集計結果を確認することが可能です。
NULL値の扱い
もし犬種が未登録のデータ(NULL)が存在する場合、COUNT関数はNULLをカウントしません。NULLも含めて集計したい場合は、ISNULL関数やCOALESCE関数で置き換えてから集計すると便利です。
SELECT ISNULL(Breed,'不明') AS Breed, COUNT(*) AS NumberOfDogs FROM Dogs GROUP BY ISNULL(Breed,'不明');
まとめ
SQL Serverで犬種ごとの犬の数を集計するには、GROUP BYを活用することが基本です。COUNT関数と組み合わせることで、簡単に各犬種の頭数を取得できます。また、ORDER BYで順序を整えたり、NULL値を扱う方法を工夫することで、より正確で見やすい集計結果を得られます。


コメント