sourcecode

테이블에서 가장 큰 ID를 가진 전체 행을 선택하려면 어떻게 해야 합니까?

copyscript 2022. 9. 16. 23:04
반응형

테이블에서 가장 큰 ID를 가진 전체 행을 선택하려면 어떻게 해야 합니까?

내가 어떻게 이런 일을 하겠어?

SQL SELECT 행 FROM 테이블의 WHERE ID=max(id)

하위 선택을 사용할 수 있습니다.

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

주의: 의 경우max(id)고유하지 않습니다.여러 행이 반환됩니다.

이러한 행이 하나만 필요한 경우 @MichaelMior의 답변을 사용합니다.

SELECT row from table ORDER BY id DESC LIMIT 1

할 수도 있고

SELECT row FROM table ORDER BY id DESC LIMIT 1;

그러면 ID별로 행이 내림차순으로 정렬되고 첫 번째 행이 반환됩니다.이는 최대 ID로 행을 반환하는 것과 같습니다.이것은 물론 다음과 같은 것을 전제로 한다.id는 모든 행에서 고유합니다.그렇지 않으면 최대값을 가진 행이 여러 개 있을 수 있습니다.id딱 한 개만 받을 수 있어요

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

줄 수 없다order by왜냐면order by는 테이블에서 "전체 스캔"을 수행합니다.

다음 조회가 더 좋습니다.

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

언제든지 분석 기능을 사용할 수 있으므로 제어력이 향상됩니다.

select tmp.row from ( select row, rank() over(partition by id order by id desc ) as rnk from table) tmp where tmp.rnk=1

데이터 유형에 따라 랭크() 함수의 문제가 발생할 경우 row_number() 또는 dense_rank() 중에서 선택할 수 있습니다.

이것으로 시험해봐

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

언급URL : https://stackoverflow.com/questions/7604893/how-do-i-select-an-entire-row-which-has-the-largest-id-in-the-table

반응형