일기 표가 있다고 가정합니다. 일기의 각 항목은 user_id
과 entry_date
입니다. 범위가 user_id
인 경우 지정된 날짜보다 늦게 첫 번째 항목을 선택하고 싶습니다.모든 행에 대해 기준을 만족하는 첫 번째 항목을 선택하십시오.
그래서
user_id | entry_date
--------------------
1 | 2016-11-09 20:00:00
2 | 2016-11-09 20:00:00
1 | 2016-11-09 21:00:00
1 | 2016-11-09 22:00:00
5 | 2016-11-10 20:00:00
와 나는
SELECT user_id,entry_date FROM entries
WHERE entries.user_id BETWEEN 10 AND 20
AND TAKE_FIRST(entries.entry_date >= to_timestamp('2016-11-09 20:30:00', 'yyyy-mm-dd hh24:mi:ss'))
과 같이 쓸 수 상상 (TAKE_FIRST()
내가 모르는 무엇에 대한 자리 표시 자입니다.)
그러면 결과는입니다.
user_id | entry_date
--------------------
1 | 2016-11-09 21:00:00
5 | 2016-11-10 20:00:00
어떻게하면됩니까? ROW_NUMBER()
와
성능에 문제가있는 것으로 보입니다. 지정된 날짜보다 큰 모든 타임 스탬프가 선택되고 그 중에서 1 개만 선택됩니다. 성능을 향상시킬 수 있습니까? – kasperhj