COUNT関数とGROUP BY句を使ったSQLクエリの書き方(DB2実行例付き)
課題
DB2のTRANSACTIONSテーブルに対して、特定のトランザクションID(TRANSACTION_ID)に割り当てられた注文数(ORDER_ID)を一覧表示するSQLクエリを作成します。
解決方法
この課題は、COUNT関数とGROUP BY句を組み合わせることで簡単に解決できます。COUNT関数で注文IDの件数を集計し、GROUP BY句でトランザクションIDごとに行をグループ化することで、各トランザクションに紐づく注文の総数を取得できます。
SQLクエリの例
SELECT TRANSACTION_ID, COUNT(ORDER_ID) FROM TRANSACTIONS GROUP BY TRANSACTION_ID
クエリのポイント
- SELECT TRANSACTION_ID: 結果に表示したいトランザクションIDを指定します。
- COUNT(ORDER_ID): 各グループ内の注文IDの件数をカウントします。
- GROUP BY TRANSACTION_ID: トランザクションIDごとに行をグループ化し、単位ごとの集計を可能にします。
サンプルデータ
例として、以下のようなDB2のTRANSACTIONSテーブルが存在するとします。
| TRANSACTION_ID | ORDER_ID |
| IRN22345 | A23118 |
| IRN22345 | A45901 |
| IRN22345 | A67990 |
| IRN56902 | A23119 |
| IRN99781 | A67921 |
| IRN56902 | A23167 |
実行結果
上記のクエリを実行すると、次のような結果が返されます。
| TRANSACTION_ID | COUNT(ORDER_ID) |
| IRN22345 | 3 |
| IRN56902 | 2 |
| IRN99781 | 1 |
結果の読み方
この結果から、トランザクション「IRN22345」には3件、「IRN56902」には2件、「IRN99781」には1件の注文が割り当てられていることが一目でわかります。このようにCOUNT関数とGROUP BY句を組み合わせることで、特定のキーごとのレコード件数を効率的に集計できます。
-
SQL ServerのCOUNT関数とは?基本構文からDISTINCT・GROUP BYの活用まで徹底解説
この記事では、SQL ServerのCOUNT関数の使い方について、具体的な構文と実行例を挙げながら詳しく解説します。COUNT関数はデータベース操作で最も頻繁に使われる集計関数の一つです。基本をしっかり押さえておくことで、日々のデータ分析やシステム開発に大きく役立ちます。 COUNT関数とは COUNT関数は、SQL Serverにおいてテーブル内のレコード(行)の件数を数えるために使用される集計関数です。重要なポイントとして、NULLが含まれる値はカウントの対象から除外されるという特性があります。 基本構文 SQL ServerでCOUNT関数を使用する際は、以下の構文を使用します。
-
【SQL Server】GROUP BY句の基本構文とSUM・COUNT・MIN・MAXの実用例を解説
SQL Server(Transact-SQL)における GROUP BY句 は、SELECT文の中で使用される句の一つで、複数のレコードから取得したデータを、指定した1つ以上の列の値ごとにグループ化し、集計結果を求めるために使われます。 SQL ServerにおけるGROUP BY句の構文 SELECT expression1, expression2, ... expression_n, aggregate_function(expression) FROM table_name [WHERE conditions] GROUP BY expression1, expre