登録人数の日別集計
配点 : 40点難易度 : 4
制限実行時間 : 1000ms制限メモリ使用量 : 128 MB
SQLiteの注意点

TOPSIC SQLでは、SQLの実行環境にSQLiteを使用しています。SQLite以外のRDBMSの文法を使用することはできません。
問題を解く際に注意すべきSQLiteの制約について、以下に記載してありますのでご確認下さい。

  1. NUMERIC、INTEGER、REALは、自身のクラスへの変換が推奨されていますが、変換できなかった場合でも、そのまま格納されます。
  2. 新しくデータを追加した場合、既に格納されているデータの中で ROWID の値が最大のものを探し、それに1を加えた値が新しく追加されるデータの ROWID の値として保存されます。
  3. 外部結合は、左外部結合を行う LEFT OUTER JOIN 句のみ使用できます。
    ※2022年12月以降、LEFT / RIGHT / FULL OUTER JOIN が使用可能となりました。
  4. 指定した日付と時刻のタイムゾーンはUTCとして扱われます。
  5. 日付関数や文字列関数については、SQLiteで固有の関数があります。
  6. テーブル項目の論理名が「◯◯日」となっている場合は、日付項目の時分秒は設定されていません。論理名が「◯◯日時」となっている場合は、日付項目の時分秒まで設定されています。
    • 「受注日」の場合は「2021-01-01」
    • 「受注日時」の場合は「2021-01-01 15:15:15」

その他のSQLiteの制約については、SQLiteの公式ドキュメントをご確認ください。
また、ER図の読み方やSQLiteの関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

あるサイトの会員情報テーブル(USERS)から、2022年8月の1カ月に会員登録された人数を、登録確認日時(CONFIRMED_AT)で日毎に集計して表示せよ。また、会員登録が全くなかった日の人数はゼロとして表示すること。ただし、有効なデータ(VALID_FLG='1')のみ集計対象とする。

表示項目は以下とする。(エイリアスを使用し→の項目名とする)

  • 2022年8月の日付 → REGIST_DATE
  • 日付に対応した曜日(日~土) → WK
  • 日毎の登録人数の合計 → TOTAL

表示順

  1. REGIST_DATEの昇順

表示フォーマット

※あくまでフォーマットを示すもので、正解例ではありません。行数も正解とは異なります。

REGIST_DATE WK TOTAL
2022-08-01 4
2022-08-02 0
2022-08-03 8
2022-08-04 0
2022-08-05 1

ER図 (半角:物理名、全角:論理名)


テーブル定義

テーブル名: USERS

主キー 列名 データ型 必須 デフォルト値
✔︎ USER_CODE VARCHAR ✔︎ NULL
CONFIRMED_AT VARCHAR NULL
VALID_FLG VARCHAR NULL
CREATED_AT VARCHAR NULL
UPDATED_AT VARCHAR NULL

サンプルデータ

テーブル名: USERS

USER_CODE CONFIRMED_AT VALID_FLG CREATED_AT UPDATED_AT
0849 2022-07-31 23:59:59 1 2022-07-30 21:02:27 2022-07-30 21:04:23
0850 NULL 1 2022-07-31 03:42:58 2022-07-31 03:42:58
0851 2022-08-01 00:00:00 1 2022-08-01 00:19:49 2022-08-01 00:20:20
0852 2022-08-01 00:00:01 1 2022-08-01 10:13:08 2022-08-01 10:13:58
0853 2022-08-01 16:40:42 1 2022-08-01 16:39:25 2022-08-01 16:40:44
0854 2022-08-01 17:13:52 1 2022-08-01 17:12:53 2022-09-21 02:34:34
0855 2022-08-02 06:06:21 0 2022-08-02 06:04:55 2022-08-02 06:06:27
0860 2022-08-03 14:01:24 1 2022-08-03 14:00:17 2022-10-19 23:20:03
0861 2022-08-03 20:39:52 1 2022-08-03 20:36:58 2022-08-10 07:19:36
0862 2022-08-03 20:39:26 1 2022-08-03 20:39:04 2022-09-22 12:05:24
0863 2022-08-03 20:42:44 1 2022-08-03 20:42:15 2022-08-03 20:42:46
0864 2022-08-03 20:54:52 1 2022-08-03 20:54:38 2022-11-07 12:50:01
0865 2022-08-03 21:01:28 1 2022-08-03 21:00:21 2022-10-19 20:17:58
0866 2022-08-03 21:36:29 1 2022-08-03 21:33:54 2022-08-03 21:36:31
0867 NULL 1 2022-08-03 22:29:43 2022-08-03 22:29:43
0868 2022-08-03 22:49:14 1 2022-08-03 22:48:32 2022-09-27 17:09:08
0870 NULL 1 2022-08-05 16:12:26 2022-08-05 16:16:30
0871 2022-08-05 16:14:35 1 2022-08-05 16:14:23 2022-08-09 19:02:55
0872 2022-08-05 16:18:03 0 2022-08-05 16:17:45 2022-08-05 16:18:04
0873 2022-08-05 20:40:13 0 2022-08-05 20:40:02 2022-08-05 20:40:13
0874 2022-08-06 00:08:14 1 2022-08-06 00:08:03 2022-09-22 08:28:46
0875 2022-08-07 03:41:38 1 2022-08-07 03:39:44 2022-08-07 03:41:48
0876 2022-08-07 14:38:11 1 2022-08-07 14:37:28 2022-08-07 14:38:13
0877 2022-08-09 00:15:45 1 2022-08-09 00:15:29 2022-08-09 00:15:48
0878 2022-08-09 15:08:43 1 2022-08-09 15:06:59 2022-08-09 15:08:46
0879 2022-08-09 15:25:31 1 2022-08-09 15:25:11 2022-09-21 17:00:25
0880 2022-08-09 20:49:01 1 2022-08-09 20:48:30 2022-08-09 20:49:19
0881 2022-08-10 01:56:08 1 2022-08-10 01:55:45 2022-08-10 02:06:55
0882 2022-08-11 19:03:34 1 2022-08-11 19:02:26 2022-08-11 19:03:36
0883 2022-08-11 21:48:15 1 2022-08-11 21:47:51 2022-08-11 21:48:18
0884 2022-08-12 14:53:59 1 2022-08-12 14:50:44 2022-08-12 14:54:02
0885 2022-08-13 09:55:51 1 2022-08-13 09:55:32 2022-09-21 21:00:09
0886 2022-08-13 13:55:11 1 2022-08-13 13:54:19 2022-08-13 14:16:19
0892 2022-08-16 15:39:51 1 2022-08-16 15:39:10 2022-09-22 11:01:54
0893 2022-08-16 23:19:36 1 2022-08-16 23:18:23 2022-08-17 08:50:02
0894 2022-08-17 19:50:12 1 2022-08-17 19:42:44 2022-08-17 19:50:14
0895 2022-08-18 05:52:54 1 2022-08-18 05:52:02 2022-08-18 05:52:56
0896 2022-08-18 13:24:36 1 2022-08-18 13:22:23 2022-08-30 14:15:49
0897 2022-08-18 14:22:18 1 2022-08-18 14:22:04 2022-09-19 20:16:08
0898 2022-08-23 10:22:55 1 2022-08-23 10:21:45 2022-08-23 10:23:01
0899 2022-08-23 23:27:18 1 2022-08-23 23:26:59 2022-08-23 23:27:43
0900 2022-08-24 13:39:58 1 2022-08-24 13:39:48 2022-11-03 14:30:22
0901 2022-08-24 17:42:15 1 2022-08-24 16:51:04 2022-08-24 17:42:35
0902 2022-08-24 17:34:13 1 2022-08-24 17:31:55 2022-08-24 17:34:16
0903 2022-08-25 11:52:38 1 2022-08-25 11:50:41 2022-08-25 16:54:33
0904 2022-08-25 22:55:28 1 2022-08-25 22:54:26 2022-11-16 11:06:11
0905 2022-08-26 10:49:27 1 2022-08-26 10:48:49 2022-08-26 10:52:32
0906 2022-08-26 14:58:46 1 2022-08-26 14:58:30 2022-08-26 15:14:03
0907 2022-08-28 22:11:20 1 2022-08-28 22:10:46 2022-08-28 22:11:24
0908 2022-08-29 17:37:13 1 2022-08-29 17:36:45 2022-10-20 10:37:53
0909 2022-08-29 23:18:36 1 2022-08-29 23:17:23 2022-08-29 23:18:39
0910 2022-08-30 16:16:36 1 2022-08-30 16:16:19 2022-08-30 23:52:15
0911 2022-08-30 21:59:07 1 2022-08-30 21:58:19 2022-08-30 21:59:11
0912 2022-08-31 08:54:30 1 2022-08-31 08:54:18 2022-08-31 08:54:43
0913 2022-08-31 11:06:58 1 2022-08-31 11:06:42 2022-11-16 11:06:18
0918 2022-08-31 23:59:59 1 2022-08-31 12:53:40 2022-08-31 13:24:51
0919 2022-09-01 00:00:00 1 2022-09-01 18:32:51 2022-11-04 13:33:35
Sorry, Japanese Only.