>source

반복적 인 질문 일 수 있음을 이해하지만 특정 ID에 대한 최신 2 개의 레코드를 가져 오는 쿼리를 작성하는 데 누구든지 도와 줄 수 있습니다. 여기에서 StartTime과 EndTime은 UnixTimestamps입니다. EndTime은 일반적으로 상태에 따라 0 또는 NULL이 될 수 있습니다.

ID  StartTime   EndTime  Status
1   1000        1003     Closed
1   1003        1005     Closed
2   1002        1008     Closed
2   1008        1009     Closed
3   1002        1005     Closed
3   1005        1010     Closed
4   1006        0        Open    
2   1009        1012     Closed
1   1005        1008     Closed
3   1010        0        Open

산출

ID StartTime  EndTime Status
1  1003       1005    Closed
1  1005       1008    Closed
2  1008       1009    Closed
2  1009       1012    Closed
3  1005       1010    Closed
3  1010       0       Open
4  1006       0       Open

  • 답변 # 1

    창 기능 사용 :

    select t.*,
    from (select t.*,
                 row_number() over (partition by id order by starttime desc) as seqnum
          from t
         ) t
    where seqnum <= 2;
    
    

  • 이전 sql - 다른 컴퓨터에서 다른 의도로 Java 응용 프로그램에 데이터베이스를 추가하는 방법
  • 다음 python - 감독되지 않은 측면 기반 감정 분석에서 주제 감지를 수행하는 방법