こんにちは、ドイです! 前回に引き続き、データサイエンス100本ノックに挑戦していきます。
前回の記事
S-046: 顧客データ(customer)の申し込み日(application_date)はYYYYMMDD形式の文字列型でデータを保有している。これを日付型に変換し、顧客ID(customer_id)とともに10件表示せよ。
SELECT customer_id, TO_DATE(application_date, 'YYYYMMDD') FROM customer LIMIT 10;
S-047: レシート明細データ(receipt)の売上日(sales_ymd)はYYYYMMDD形式の数値型でデータを保有している。これを日付型に変換し、レシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに10件表示せよ。
SELECT receipt_no, receipt_sub_no, TO_DATE(CAST(sales_ymd AS VARCHAR), 'YYYYMMDD') AS sales_ymd FROM receipt LIMIT 10
S-048: レシート明細データ(receipt)の売上エポック秒(sales_epoch)は数値型のUNIX秒でデータを保有している。これを日付型に変換し、レシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに10件表示せよ。
SELECT receipt_no, receipt_sub_no, CAST(TO_TIMESTAMP(sales_epoch) AS DATE) AS sales_ymd FROM receipt LIMIT 10
S-049: レシート明細データ(receipt)の売上エポック秒(sales_epoch)を日付型に変換し、「年」だけ取り出してレシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに10件表示せよ。
SELECT receipt_no, receipt_sub_no, EXTRACT(YEAR FROM TO_TIMESTAMP(sales_epoch)) AS sales_year FROM receipt LIMIT 10
S-050: レシート明細データ(receipt)の売上エポック秒(sales_epoch)を日付型に変換し、「月」だけ取り出してレシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに10件表示せよ。なお、「月」は0埋め2桁で取り出すこと。
SELECT receipt_no, receipt_sub_no, TO_CHAR( EXTRACT(MONTH FROM TO_TIMESTAMP(sales_epoch)), 'FM00' ) AS sales_month FROM receipt LIMIT 10
S-051: レシート明細データ(receipt)の売上エポック秒を日付型に変換し、「日」だけ取り出してレシート番号(receipt_no)、レシートサブ番号(receipt_sub_no)とともに10件表示せよ。なお、「日」は0埋め2桁で取り出すこと。
SELECT receipt_no, receipt_sub_no, TO_CHAR(EXTRACT(DAY FROM TO_TIMESTAMP(sales_epoch)), 'FM00') AS sales_day FROM receipt LIMIT 10
まとめ
今回は問題のキリが悪かったため、51番の問題まで解きました。
ようやく半分まで来ました!!残りも引き続き勉強していきます!!