ソースコード
WITH log AS (
    select
        PORT_CODE,
        KIND_CODE,
        SUM(i.AMT) AS AMT
    from
        IMMIGRATION i
    join
        GRP g
    on
        i.GROUP_CODE = g.GROUP_CODE
    where
        g.GROUP_NAME = "外国人"
        AND i.KIND_CODE in (110, 120)
    group by
        PORT_CODE, KIND_CODE
),
target AS (
    SELECT
        p.PORT_CODE,
        inx.AMT AS in_amt,
        out.AMT AS out_amt
    FROM
        PORT p
    JOIN
        (SELECT * FROM log WHERE KIND_CODE=110) inx
    ON
        p.PORT_CODE = inx.PORT_CODE
    JOIN
        (SELECT * FROM log WHERE KIND_CODE=120) out
    ON
        p.PORT_CODE = out.PORT_CODE
    WHERE
        inx.AMT > out.AMT
)
SELECT
    t.PORT_CODE AS "港コード",
    p.PORT_NAME AS "港名",
    t.in_amt AS "入国者数",
    t.out_amt AS "出国者数",
    t.in_amt - t.out_amt AS "差分"
FROM
    target t
JOIN
    PORT p
ON
    t.PORT_CODE = p.PORT_CODE
ORDER BY
    "差分" desc,
    "港コード" desc
提出情報
提出日時2022/08/31 11:53:18
コンテスト第1回 SQLコンテスト
問題港入出国者分析
受験者ftakahas
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量90 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
90 MB
データパターン2
AC
88 MB