OceanBase logo

OceanBase

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

プロダクト概要
デプロイを自由に

OceanBase Cloud

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

エンタープライズ版

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

オープンソース版を試す

コミュニティ版

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

OceanBase seekdb

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

顧客事例

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

さらに見る
利用シーン別

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

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

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

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

複数インスタンスの統合

ドキュメント

会社概要

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

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

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

OceanBase

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

プロダクト概要
デプロイを自由に

OceanBase Cloud

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

エンタープライズ版

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

オープンソース版を試す

コミュニティ版

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

OceanBase seekdb

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

顧客事例

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

さらに見る
利用シーン別

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

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

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

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

複数インスタンスの統合

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

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

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

OceanBaseデータベース

SQL - V4.4.2

    OceanBase ロゴ

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

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

    © OceanBase 2026. All rights reserved

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

    PERCENTILE_CONT

    最終更新日:2026-06-15 02:31:33  更新
    シェア
    このページの内容
    説明
    構文
    パラメータの説明
    戻り値の型
    例
    集計関数の例
    分析関数の例

    折りたたみ

    シェア

    説明

    この関数は、連続分布モデルの逆分布関数を仮定したものです。指定されたパーセンテージ値とソート規範に基づき、そのソート規範における指定されたパーセンテージ値に対応する内挿値を返します。計算ではNULL値は無視されます。

    説明

    • 分析関数として使用する場合は、OVER 句を使用してウィンドウを定義し、計算を行います。これは一連の行の集合に対して計算を行い、複数の値を返します。
    • 集約関数として使用する場合、この関数は一連の行の集合に対して集約計算を行い、結果は1つの値のみを返すため、OVER 句は不要です。

    構文

    PERCENTILE_CONT(percentile) WITHIN GROUP (ORDER BY expr [ DESC | ASC ])
    [ OVER (query_partition_clause) ]
    

    パラメータの説明

    パラメータ
    説明
    percentile 指定するパーセンタイル値で、数値データ型の定数です。値の範囲は [0,1] です。
    説明 MEDIAN 関数は、percentile が 0.5 の特別な場合に相当します。
    expr ソート規範を指定する式で、データ型は数値型または日付時刻型である必要があります。
    注意 expr は列参照を含む単一の式でなければならず、複数の式の使用は許可されません。
    DESC | ASC リストのソート方法を指定します。オプションです。
    • ASC は昇順ソートで、デフォルト値です。
    • DESC は降順ソートです。
    OVER OVER 句を使用してウィンドウを定義し、計算を行います。詳細については、分析関数の説明を参照してください。

    説明

    この関数は、ソート仕様に従って行をソートした後、指定された割合値 (P) と非NULL行数 (N) を用いて行番号を計算します。行番号の計算式は RN = (1+ (P*(N-1)) です。この関数の最終結果は、行番号 CRN = CEILING(RN) と FRN = FLOOR(RN) の行の値を用いた線形補間によって計算されます。最終的な結果は次のとおりです:

    もし (CRN = FRN = RN) の場合、結果は (value of expression from row at RN) となります。それ以外の場合、結果は次のとおりです:

    (CRN - RN) * (value of expression for row at FRN) + (RN - FRN) * (value of expression for row at CRN)。

    戻り値の型

    パラメータ expr と同じデータ型を返します。

    例

    既に作成済みのテーブル tbl1 があります。

    obclient> SELECT * FROM tbl1;
    +------+------+------+------+
    | COL1 | COL2 | COL3 | COL4 |
    +------+------+------+------+
    |    1 | A1   |    8 |   12 |
    |    1 | A2   |   10 |   15 |
    |    1 | A3   |   11 |   16 |
    |    2 | B1   |    9 |   14 |
    |    2 | B2   |   10 |   15 |
    |    2 | B3   |    8 |   13 |
    |    2 | B4   |   11 |   16 |
    |    3 | C1   |    8 |   18 |
    |    3 | C2   |    9 |   16 |
    |    3 | C3   |   10 |   15 |
    |    3 | C4   |   11 |   12 |
    |    3 | C5   |   12 |   10 |
    +------+------+------+------+
    12 rows in set
    

    集計関数の例

    col4 列の10パーセンタイル値を計算します。

    obclient> SELECT PERCENTILE_CONT(0.1) WITHIN GROUP (ORDER BY col4) FROM tbl1;
    +----------------------------------------------+
    | PERCENTILE_CONT(0.1)WITHINGROUP(ORDERBYCOL4) |
    +----------------------------------------------+
    |                                           12 |
    +----------------------------------------------+
    1 row in set
    

    分析関数の例

    col1 列でグループ化し、col4 列の50パーセンタイル値(つまり、col4 列の中央値)を計算します。

    obclient> SELECT col1,col4,PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY col4) OVER (PARTITION BY col1)
              FROM tbl1;
    +------+------+-------------------------------------------------------------------+
    | COL1 | COL4 | PERCENTILE_CONT(0.5)WITHINGROUP(ORDERBYCOL4)OVER(PARTITIONBYCOL1) |
    +------+------+-------------------------------------------------------------------+
    |    1 |   12 |                                                                15 |
    |    1 |   15 |                                                                15 |
    |    1 |   16 |                                                                15 |
    |    2 |   14 |                                                              14.5 |
    |    2 |   15 |                                                              14.5 |
    |    2 |   13 |                                                              14.5 |
    |    2 |   16 |                                                              14.5 |
    |    3 |   18 |                                                                15 |
    |    3 |   16 |                                                                15 |
    |    3 |   15 |                                                                15 |
    |    3 |   12 |                                                                15 |
    |    3 |   10 |                                                                15 |
    +------+------+-------------------------------------------------------------------+
    12 rows in set
    

    前のトピック

    PERCENT_RANK
    最後

    次のトピック

    PERCENTILE_DISC
    次
    このページの内容
    説明
    構文
    パラメータの説明
    戻り値の型
    例
    集計関数の例
    分析関数の例