2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL ARRAY_AGGの使い方入門

2
Last updated at Posted at 2025-09-25

SQLのARRAY_AGGは、複数のレコードの値を一つの配列にまとめて表示するための集計関数です。複数店舗が紐づけられている子これにより、関連するデータをコンパクトに整理し、見やすくすることができます。


1. ARRAY_AGGの基本的な使い方

ARRAY_AGGは、GROUP BYと組み合わせて使うのが一般的です。これにより、特定のカテゴリに属する複数の値を1つのレコードに集約できます。

構文:

SELECT
    グループ化したいカラム,
    ARRAY_AGG(集約したいカラム)
FROM
    テーブル名
GROUP BY
    グループ化したいカラム;

例: 注文ごとの商品リストをまとめる

order_detailsというテーブルがあり、各注文(order_id)に複数の商品ID(product_id)が紐づいているとします。

order_id product_id quantity
101 200129 2
101 218882 1
102 532847 3
102 200129 1

このテーブルから、注文ごとに購入された商品IDを一覧で表示したい場合、ARRAY_AGGが非常に役立ちます。

SELECT
    order_id,
    ARRAY_AGG(product_id) AS ordered_products
FROM
    order_details
GROUP BY
    order_id;

実行結果:

order_id ordered_products
101 {200129, 218882}
102 {532847, 200129}

このように、ARRAY_AGGを使うことで、order_idが同じレコードのproduct_idが1つの配列にまとめられ、関連するデータを1行で確認できるようになります。


2. なぜARRAY_AGGが便利なのか?

ARRAY_AGGを使用する主なメリットは、関連するデータを1つのレコードに紐づけて見やすく表示できる点にあります。

  • データ分析: 1対多の関係にあるデータを集約することで、よりスムーズに分析を行えます。
  • レポート作成: 顧客ごとの購入履歴や、プロジェクトごとのタスク一覧などを簡潔な形式で出力できます。
  • アプリケーション開発: 取得したデータをそのままアプリケーションの表示に利用でき、プログラム側でデータの整形を行う手間を省けます。

ARRAY_AGGは、このようにデータの整理と可視化に非常に役立つ関数です。これを使いこなせば、より効率的なSQLクエリを書けるようになります。


2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?