OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    GROUPING_ID

    最終更新日:2026-04-15 15:09:34  更新
    シェア
    このページの内容
    説明
    制限事項と注意点
    構文
    パラメータの説明
    使用例

    折りたたみ

    シェア

    説明

    GROUPING_ID関数は、一連の式の組み合わせ値を計算するために使用されます。この関数は、行が属するGROUP BY階層を表す数値を返します。

    GROUPING_ID関数は、ビットベクトルを作成し、GROUPING関数が各プロパティに適用されるたびに生成される1と0のシーケンスを連結します。このビットベクトルはバイナリ数として扱われ、GROUPING_ID関数はその後、対応する10進数値を返します。

    たとえば、CUBE(a, b)をグループ化式として使用した場合、考えられるGROUPING_ID値は次のとおりです:

    集計レベル ビットベクトル GROUPING_ID
    a, b 00 0
    a 01 1
    b 10 2
    合計 11 3

    制限事項と注意点

    • グループ化セット内の特定の式がある場合、GROUPING_IDが返す値は増加します。グループ化セットにない場合は変更されません。

    構文

    GROUPING_ID(attributeList)
    

    パラメータの説明

    パラメータ 説明
    attributeList 組み合わせ値を計算する式のリスト。

    使用例

    注文ID(order_id)、年(year)、四半期(quarter)、および注文金額(amount)を含む、さまざまな注文データを格納するためにordersテーブルを作成します。

    obclient [SYS]> CREATE TABLE orders (
        ->     order_id INT,
        ->     year INT,
        ->     quarter INT,
        ->     amount DECIMAL(10, 2)
        -> );
    

    次に、いくつかのサンプルデータを挿入し、GROUPING_IDを使用してこれらのデータを分析します。

    obclient [SYS]> INSERT INTO orders (order_id, year, quarter, amount) VALUES
        -> (1, 2021, 1, 1000.00),
        -> (2, 2021, 1, 1500.00),
        -> (3, 2021, 2, 2000.00),
        -> (4, 2021, 2, 2500.00),
        -> (5, 2021, 3, 3000.00),
        -> (6, 2021, 4, 3500.00),
        -> (7, 2021, 4, 4000.00),
        -> (8, 2022, 1, 4500.00),
        -> (9, 2022, 2, 5000.00),
        -> (10, 2022, 3, 5500.00),
        -> (11, 2022, 4, 6000.00);
    

    このクエリで生成される結果セットは、異なる年と四半期のすべての可能な集計コンポジション、および各コンポジションの注文総額を示します。GROUPING_IDは、集計レベルを示すために各コンポジションに一意の数字を提供します。

    この例では、GROUPING_ID(year, quarter)は次の値を生成します:

    • yearとquarterがどちらもNULLでない場合(最も具体的なグループ)、GROUPING_IDの値は0です。
    • yearのみがNULLでない場合(年別合計)、GROUPING_IDの値は1です。
    • yearとquarterがどちらもNULLの場合(注文の合計)、GROUPING_IDの値は2です。
    obclient [SYS]> SELECT
        ->     year,
        ->     quarter,
        ->     GROUPING_ID(year, quarter) AS grouping_level,
        ->     SUM(amount) AS total_amount
        -> FROM orders
        -> GROUP BY ROLLUP(year, quarter)
        -> ORDER BY year, quarter;
    

    実行結果は次のとおりです:

    +------+---------+----------------+--------------+
    | YEAR | QUARTER | GROUPING_LEVEL | TOTAL_AMOUNT |
    +------+---------+----------------+--------------+
    | 2021 |       1 |              0 |         2500 |
    | 2021 |       2 |              0 |         4500 |
    | 2021 |       3 |              0 |         3000 |
    | 2021 |       4 |              0 |         7500 |
    | 2021 |    NULL |              1 |        17500 |
    | 2022 |       1 |              0 |         4500 |
    | 2022 |       2 |              0 |         5000 |
    | 2022 |       3 |              0 |         5500 |
    | 2022 |       4 |              0 |         6000 |
    | 2022 |    NULL |              1 |        21000 |
    | NULL |    NULL |              3 |        38500 |
    +------+---------+----------------+--------------+
    11 rows in set
    

    前のトピック

    GROUP_ID
    最後

    次のトピック

    分析関数の説明
    次
    このページの内容
    説明
    制限事項と注意点
    構文
    パラメータの説明
    使用例