コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
/*
試した結果
①left joinは誤判定、inner joinにする
ただし直積はカンマでもCROSS JOINでもOK
②同じ結果でも、距離を|X1-X0|+|Y1-Y0|で評価すると誤判定
きっちり √ までつけなくていいが、2点間の距離の公式を使う
*/
--清書版
WITH base_point AS (
--基準地点
SELECT
LATITUDE AS base_LA
,LONGITUDE AS base_LO
FROM
LOCATION_TBL
WHERE
DISTRICT_CODE = '1101'
),
distance_list AS (
--各地点の距離を算出
SELECT distinct
l.DISTRICT_CODE AS CODE
,d.DISTRICT_NAME AS NAME
,l.LATITUDE AS LAT
,l.LONGITUDE AS LON
,POW((l.LATITUDE - base_LA),2) + pow((l.LONGITUDE - base_LO),2) AS distance
FROM
LOCATION_TBL l
,base_point
INNER JOIN DISTRICT d
ON l.DISTRICT_CODE = d.DISTRICT_CODE
WHERE
l.DISTRICT_CODE <> '1101'
)
SELECT
CODE
,NAME
,LAT
,LON
FROM
distance_list
ORDER BY
distance DESC
,CODE ASC
;
提出情報
提出日時 | 2023/04/17 23:15:07 |
コンテスト | 第6回 SQLコンテスト |
問題 | 位置情報 |
受験者 | keisuke_nakata |
状態 (詳細) | AC (Accepted: 正答) |
メモリ使用量 | 92 MB |
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
82 MB
データパターン2
AC
92 MB
データパターン3
AC
81 MB