Нижеприведенный запрос является абсолютно функциональным и запрашивает одну таблицу, чтобы найти последние 50 имен пользователей, добавленных через последовательный столбец userid
.Более элегантный SQL?
До сих пор логика: узнать наивысший идентификатор пользователя; вычесть 50 из этого; тянуть имена пользователей назад, где больше.
Однако, это не выглядит элегантно, и использует два подзапроса для достижения его цели:
SELECT username
FROM table
WHERE userid IN
(SELECT userid
FROM table
WHERE userid >
(SELECT MAX(userid) -50
FROM table))
Есть ли способ сделать это менее вложенной? Более эффективным? Более элегантный? Любая помощь будет высоко оценена, поскольку это не может быть лучшим способом!
Приветствия & большое спасибо
Али
Я знаю SQL, но я не уверен в варианте Oracle.Вы посмотрели заявление TOP? В MS SQL (это то же самое) вы можете сделать; Выбрать Топ 50 имя пользователя из таблицы Заказать By UserId Desc; –