복붙노트

[SQL] 어떻게 테이블에서 가장 큰 ID가 전체 행을 선택합니까?

SQL

어떻게 테이블에서 가장 큰 ID가 전체 행을 선택합니까?

어떻게 이런 일을 할 것인가?

SQL SELECT row FROM table WHERE id=max(id)

해결법

  1. ==============================

    1.당신은 부속을 사용할 수 있습니다 :

    당신은 부속을 사용할 수 있습니다 :

    SELECT row 
    FROM table 
    WHERE id=(
        SELECT max(id) FROM table
        )
    

    최대 (ID)의 값이 고유하지 않은 경우, 여러 행이 반환합니다.

    당신은 단지 하나 개의 행을 원하는 경우, MichaelMior의 대답 @ 사용,

    SELECT row from table ORDER BY id DESC LIMIT 1
    
  2. ==============================

    2.당신은 또한 할 수

    당신은 또한 할 수

    SELECT row FROM table ORDER BY id DESC LIMIT 1;
    

    이 내림차순으로 자신의 ID로 행을 정렬하고 첫 번째 행을 반환합니다. 이 최대의 ID와 함께 행 복귀 동일하다. 물론 이것은 ID가 모든 행에서 고유 것으로 가정합니다. 그렇지 않으면 ID의 최대 값과 여러 행이있을 수 있습니다 그리고 당신은 하나를 얻을 수 있습니다.

  3. ==============================

    3.

    SELECT * 
    FROM table 
    WHERE id = (SELECT MAX(id) FROM TABLE)
    
  4. ==============================

    4.당신은 테이블에 "전체 검사"를 수행하여 때문에 순서에 따라 순서를 줄 수 없다.

    당신은 테이블에 "전체 검사"를 수행하여 때문에 순서에 따라 순서를 줄 수 없다.

    다음 쿼리는 더 :

    SELECT * FROM table WHERE id = (SELECT MAX(id) FROM table);
    
  5. ==============================

    5.이것으로 시도

    이것으로 시도

     SELECT top 1  id, Col2,  row_number() over (order by id desc)  FROM Table
    
  6. ==============================

    6.하나는 항상 당신에게 더 많은 제어를 제공 할뿐만 아니라 분석 기능에 갈 수 있습니다

    하나는 항상 당신에게 더 많은 제어를 제공 할뿐만 아니라 분석 기능에 갈 수 있습니다

    (테이블 RNK로서 선택 행 랭크 ()에 의해 ID 번호의 내림차순 순서에 의해 이상 (파티션)) 여기서 tmp.rnk TMP = 1로부터 선택 tmp.row

    당신이 순위 () 함수는 데이터의 종류에 따라와 문제에 직면 경우, 하나는 ROW_NUMBER () 또는 너무 DENSE_RANK ()을 선택할 수 있습니다.

  7. from https://stackoverflow.com/questions/7604893/how-do-i-select-an-entire-row-which-has-the-largest-id-in-the-table by cc-by-sa and MIT license