Sum 句と Group By 句を使用した SQL ケース

Sum Juto Group By Juwo Shi Yongshita Sql Kesu



このチュートリアルでは、CASE ステートメントを SUM 関数および GROUP BY 句とともに使用する方法を学習します。

このチュートリアルでは、SQL Case ステートメント、sum() 関数、または GROUP BY 句の操作の基本については説明しません。これらの SQL 機能の基本を探している場合は、トピックに関するチュートリアルを参照してさらに詳しく調べてください。







問題:

「orders」という名前のテーブルがあり、顧客 ID ごとにグループ化された各顧客の合計売上高を取得したいとしますが、同時に 3 つ以上の注文を行った顧客の割引も計算したいとします。



表を以下に示します。



「CREATE TABLE」の注文 (
order_id INT 主キー、
customer_id INT、
製品ID INT、
order_date DATE、
数量INT、
価格 10 進数 ( 10 2 )
) ;


以下に示すように、サンプル データをテーブルに挿入します。





注文に挿入 ( order_id、customer_id、product_id、order_date、数量、価格 )
価値観
( 1 101 1 「2022-04-01」 2 10.99 )
( 2 102 2 「2022-04-01」 1 19.99 )
( 3 103 1 「2022-04-02」 3 8.99 )
( 4 101 3 「2022-04-03」 2 15.99 )
( 5 102 1 「2022-04-03」 1 12.99 )
( 6 104 2 「2022-04-04」 4 7.99 )
( 7 103 3 「2022-04-05」 2 21.99 )
( 8 101 2 「2022-04-06」 1 18.99 )
( 9 104 1 「2022-04-07」 2 9.99 )
( 10 102 3 「2022-04-07」 3 14.99 ) ;


これにより、次のようなテーブルが作成されるはずです。



Sum 句と Group By 句を使用した SQL ケース

ID ごとにグループ化された各顧客の合計売上を取得し、3 つ以上の注文を行った顧客の割引を計算するには、次のように CASE ステートメントを SUM 句および GROUP BY 句と組み合わせて使用​​します。

選択する 注文.customer_id、 ( 注文数量 * 注文価格 * ( 場合 カウントするとき ( * ) > 2 それから 0.9 それ以外 1 終わり ) ) として 注文の合計売上高;


この例では、SQL CASE ステートメントを使用して、顧客が 3 つ以上の注文をしたかどうかを確認します。

顧客が 3 つ以上の注文を行った場合、total_sales に 0.9 を乗算し、10% の割引が適用されます。

結論

SQL CASE ステートメントを SUM() および GROUP BY 句とともに使用する方法について説明しました。