ソースコード
/*
港毎に出入国者の人数を集計した出入国集計データより、外国人の入国者が出国者より多い港を抽出しなさい。 種別コードは、'110'(入国者) 、'120'(出国者)となる。

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

PORT_CODE → 港コード
PORT_NAME → 港名
外国人入国者のAMT → 入国者数
外国人出国者のAMT → 出国者数
外国人入国者のAMT - 外国人出国者のAMTの計算結果 → 差分
表示順

差分の降順
港コードの降順
*/
SELECT
 p.PORT_CODE as '港コード'
,p.PORT_NAME as '港名'
,SUM(CASE i.KIND_CODE WHEN '110' THEN i.AMT ELSE 0 END) as '入国者数'
,SUM(CASE i.KIND_CODE WHEN '120' THEN i.AMT ELSE 0 END) as '出国者数'
,SUM(CASE i.KIND_CODE WHEN '110' THEN i.AMT ELSE 0 END) - SUM(CASE i.KIND_CODE WHEN '120' THEN i.AMT ELSE 0 END) as '差分'
FROM IMMIGRATION i
INNER JOIN PORT p
    ON p.PORT_CODE = i.PORT_CODE
INNER JOIN GRP g
    ON g.GROUP_CODE = i.GROUP_CODE
    AND g.GROUP_NAME = '外国人'
GROUP BY
 p.PORT_CODE
,p.PORT_NAME
HAVING 差分 >= 1
ORDER BY
 5 desc
,1 desc
提出情報
提出日時2022/07/20 19:33:08
コンテスト第1回 SQLコンテスト
問題港入出国者分析
受験者nnaka2992
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量102 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
99 MB
データパターン2
AC
102 MB