Oracleグループの使い方

青灯夜游
リリース: 2022-03-17 12:47:52
オリジナル
10383 人が閲覧しました

Oracle では、クエリ結果をグループ化するには、「group by」キーワードを SELECT ステートメントと一緒に使用する必要があります。行は、行または式の値によってグループ化された概要行に結合できます。構文「SELECT フィールド リスト FROM データ」テーブル名 GROUP BY フィールド名;"。

Oracleグループの使い方

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle GROUP BY 句の概要

GROUP BY キーワードを使用すると、1 つ以上のフィールドに基づいてクエリ結果をグループ化できます。

GROUP BY 句は、行または式の値によって行をグループ化された集計行に結合するために SELECT ステートメントで使用されます。 GROUP BY 句は、グループごとに 1 行を返します。

GROUP BY 句は通常、AVG()、COUNT()、MAX()、MIN()、SUM() などの集計関数とともに使用されます。この場合、集計関数は各グループの概要情報を返します。たとえば、製品にいくつかのカテゴリがある場合、AVG() 関数は各カテゴリの製品の平均価格を返します。

次に、Oracle の GROUP BY 句の構文を示します。

SELECT
    字段列表
FROM
    数据表名
GROUP BY
    字段名;
ログイン後にコピー

GROUP BY 句は、FROM 句の後に表示されます。 WHERE 句を指定する場合は、GROUP BY 句を WHERE 句の前に配置する必要があります。

GROUP BY 句は、グループ化列の値 (c1、c2、c3 など) によって行をグループ化します。 GROUP BY 句には、集計列またはグループ化列のみを含めることができます。

一度に計算する複数のグループ化レベルを指定する場合は、次の ROLLUP 構文を使用します。

SELECT
    字段列表
FROM
    数据表名
GROUP BY
    ROLLUP(c1,c2,c3);
ログイン後にコピー

Oracle GROUP BY 例

サンプル データベース内の次の orders テーブルと order_items テーブルを使用してデモを行います:

Oracleグループの使い方

# #1. Oracle GROUP BY

の基本的な例 次のステートメントは、

GROUP BY 句を使用して、orders テーブル内で一意の注文ステータスを検索します。 :

SELECT
    status
FROM
    orders
GROUP BY
    status;
ログイン後にコピー

上記のクエリ ステートメントを実行すると、次の結果が得られます。

Oracleグループの使い方

このステートメントは、

DISTINCT を使用した次のステートメントと同じ効果があります。 演算子:

SELECT
    DISTINCT status
FROM
    orders;
ログイン後にコピー

2. Oracle GROUP BY 集計の例

次のステートメントは顧客の注文数量を返します:

SELECT
    customer_id, COUNT( order_id )
FROM
    orders
GROUP BY
    customer_id
ORDER BY
    customer_id;
ログイン後にコピー

上記のクエリ ステートメントを実行すると、次の結果が得られます。 -

Oracleグループの使い方

この例では、注文を顧客番号でグループ化し、

COUNT() を使用します。注文数量を返す 関数。

より意味のあるデータを取得するには、次のように

orders テーブルと customers テーブルを結合します。

SELECT
    name, COUNT( order_id )
FROM
    orders
INNER JOIN customers
        USING(customer_id)
GROUP BY
    name
ORDER BY
    name;
ログイン後にコピー

上記のクエリ ステートメントを実行します。次の結果が得られます -

Oracleグループの使い方

#3. Oracle GROUP BY 式の例

次の例は次のとおりです。 year 注文をグループ化し、年間の注文数を返します。次のクエリ ステートメントを参照してください。

SELECT
    EXTRACT(YEAR FROM order_date) YEAR,
    COUNT( order_id )
FROM
    orders
GROUP BY
    EXTRACT(YEAR FROM order_date)
ORDER BY
    YEAR;
ログイン後にコピー

上記のクエリ ステートメントを実行すると、次の結果が得られます。

Oracleグループの使い方

この例では、

EXTRACT を使用します。 ()関数は注文日から年の情報を取得します。

前の例とは異なり、これは

GROUP BY 句で年を返す式を使用します。

4. ROLLUP を使用した Oracle GROUP BY の例

次のステートメントは、

customer_id,## によって売上高を計算します。 #status と (customer_id, status) でグループ化します。

SELECT
    customer_id,
    status,
    SUM( quantity * unit_price ) sales
FROM
    orders
INNER JOIN order_items
        USING(order_id)
GROUP BY
    ROLLUP(
        customer_id,
        status
    );
ログイン後にコピー
上記のクエリ ステートメントを実行すると、次の結果が得られます -

Oracleグループの使い方 推奨チュートリアル: 「

Oracle チュートリアル

以上がOracleグループの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!