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

Как бы я сделал что-то подобное? Я пытался понять это примерно на час. Очень расстраивает. Любая помощь будет потрясающей!

Ответ 1

Вы можете использовать подзапрос:

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

Обратите внимание, что если значение max(id) не уникально, возвращается несколько строк.

Если вам нужна только одна такая строка, используйте ответ @MichaelMior,

SELECT row from table ORDER BY id DESC LIMIT 1

Ответ 2

Вы также можете сделать

SELECT row from table ORDER BY id DESC LIMIT 1;

Это отсортирует строки по их идентификатору в порядке убывания и вернет первую строку. Это то же самое, что и возвращение строки с максимальным идентификатором. Это, конечно, предполагает, что id является единственным среди всех строк. В противном случае может быть несколько строк с максимальным значением для id, и вы получите только один.

Ответ 3

Вы не можете дать order by, потому что order by выполняет "полное сканирование" в таблице.

Следующий запрос лучше:

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

Ответ 4

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

Ответ 5

Попробуйте с этим

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

Ответ 6

вы также можете использовать COUNT (id) вместо MAX (id)

SELECT * FROM table WHERE id = (SELECT count(id) FROM table)