WITH both_times AS (
SELECT
server_id,
session_status,
status_time AS starts,
LEAD(status_time) OVER (PARTITION BY server_id ORDER BY status_time) AS stops
FROM server_utilization
)
SELECT
SUM(stops::DATE - starts::DATE) AS total_uptime_days
FROM both_times
WHERE session_status = 'start' AND stops IS NOT NULL
비고 : 콜론 두 개(::)를 사용하면 CAST와 같은 기능을 한다. 하지만 PostgreSQL에서만 가능하다. MySQL에서는 불가능.