DataScience100Knock-S26
S-026: レシート明細テーブル(receipt)に対し、顧客ID(customer_id)ごとに最も新しい売上日(sales_ymd)と古い売上日を求め、両者が異なるデータを10件表示せよ。
最初半信半疑で次のように書いてエラー
code:1.sql
select customer_id, max(sales_ymd) as latest_sales_date, min(sales_ymd) as oldest_sales_date
from receipt
group by customer_id
having latest_sales_date <> oldest_sales_date
limit 10;
group byのkey
集合関数の値
は入ることができそう。そこで次のようにすると意図した通り動く。
code:2.sql
select customer_id, max(sales_ymd) as latest_sales_date, min(sales_ymd) as oldest_sales_date
from receipt
group by customer_id
having max(sales_ymd) <> min(sales_ymd)
limit 10;