質問(8)-グループ化と集約


実習問題で復習して…!
Chapter 8-グループ化と集約

実習8-1。


クエリーを作成してpaymentテーブルのロー数を計算します.
固有値を計算することなく全行数を計算できるので、
  • 関数を使用します.
  • mysql> SELECT COUNT(*)
        -> FROM payment;
        
    +----------+
    | COUNT(*) |
    +----------+
    |    16049 |
    +----------+
    1 row in set (0.00 sec)

    実習8-2。


    [実習8-1]のクエリーを変更し、顧客ごとの支払い回数を計算します.顧客IDは、各顧客が支払う総額とともに表示されます.
  • 支払票の表示.
  • count(*)支払金額熱がある.ここではamount関数を使って、クライアントIDでグループ化すればいいです.
  • 顧客IDごとに支払う総額を表示する必要があるcount(*)関数を使用する.
  • SELECT 
    	customer_id
    	, COUNT(*)
    	, SUM(amount)
    FROM payment 
    GROUP BY 
    	customer_id ;
    顧客総数が599人だったので599行出て、顧客ごとに支払った総額合計表示.

    実習8-3。


    [実習8-2]の照会を修正し、少なくとも40回以上の支払いをした顧客が含まれていることを確認します.
  • 決済回数を計算する必要があるので、sum()関数を使用します.
  • 顧客IDでグループ化し、グループ化後40回以上のフィルタ条件を加えるcount(*)節に条件を入れる.
  • SELECT 
    	customer_id
    	, COUNT(*)
    	, SUM(amount)
    FROM payment 
    GROUP BY 
    	customer_id 
    HAVING 
    	COUNT(*) >= 40 ; 
    7つの結果値が得られた.