이런 식으로 어떻게합니까?
테이블에서 SQL SELECT 행 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
데이터 유형에 따라 rank () 함수에 문제가 발생하면 row_number () 또는 dense_rank () 중에서 선택할 수 있습니다.
답변
이것으로 시도
SELECT top 1 id, Col2, row_number() over (order by id desc) FROM Table
답변
