ソースコード
with WK_LOGIN_TABLE as(
    select 
        MEMBER_CODE
        ,DATE(LOGIN_DATETIME) as FIRST_LOGIN--日付だけを取り出しておく。
    from ACCESS_LOG
    where 
        not exists (
                select MEMBER_CODE
                from (
                --8月1日以前の別表を作る。
                    select
                        MEMBER_CODE
                        ,DATE(LOGIN_DATETIME) as FIRST_LOGIN
                    from ACCESS_LOG
                    where FIRST_LOGIN <'2023-08-01')wk
                --元のACCESS_LOGテーブルのMENBER_CODEとwkテーブルのMENBER_CODEをinner joinして重複していないものを(not exist)取り出す。
                where ACCESS_LOG.MEMBER_CODE = wk.MEMBER_CODE)
        --8月の間
        and LOGIN_DATETIME between '2023-08-01 00:00:00' AND '2023-08-31 23:59:59'
    --8月の間に複数回ログインしているMEMBER_CODEはgroup byして取り除く。
    group by MEMBER_CODE
)
select
    FIRST_LOGIN
    ,count(FIRST_LOGIN) as MEMBER_CNT --WITH句のWK_LOGIN_TABLEのカラムでcountする。
from WK_LOGIN_TABLE
group by FIRST_LOGIN
order by  FIRST_LOGIN desc;
提出情報
提出日時2023/10/15 01:36:57
コンテスト第9回 SQLコンテスト
問題新規ログイン数
受験者YKN0046
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量78 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
78 MB
データパターン2
AC
77 MB