문제
SQLite
함수 | 설명 |
radians(deg) | 각도를 라디안(radian) 단위로 변환 (Haversine 공식에서 필수) |
sin(x) | x 값(라디안)의 사인(sine) 값을 반환 |
cos(x) | x 값(라디안)의 코사인(cosine) 값을 반환 |
sqrt(x) | x의 제곱근(√x) 값을 반환 |
date() | 날짜 관련 연산을 수행하는 함수 |
asin | 아크사인(arc sine) 값을 계산하는 데 사용. 사인(sine) 값에 대한 역함수를 라디안 단위로 반환 |
내가 작성한 정답

d = 2*6356*asin(
sqrt(power(sin(radians((o.lat-n.lat)/2)),2)
+ cos(radians(o.lat))*cos(radians(n.lat))
* power(sin(radians((o.lng-n.lng)/2)),2))) * 1.0 <= 0.3
select o.station_id, o.name
from station o
join station n on o.updated_at < n.updated_at
and 2*6356*asin(
sqrt(power(sin(radians((o.lat-n.lat)/2)),2)
+ cos(radians(o.lat))*cos(radians(n.lat))
* power(sin(radians((o.lng-n.lng)/2)),2))) * 1.0 <= 0.3
group by o.station_id, o.name
having count(n.station_id) >= 5;Share article