SQL Выбор всех строк, кроме столбца с наибольшим значением - PullRequest
0 голосов
/ 10 июля 2019

Вот моя таблица (блог) со всем выводом, показанным через SELECT *

Я пытаюсь выбрать все, кроме самого высокого значения в столбце blogid

Я пытался использовать:

SELECT *
FROM blog
WHERE blogid < MAX(blogid) 
ORDER BY createddate DESC

, где я надеялся, что он выбирает все значения, которые ниже максимального числа в blogid, но при этом появляется ошибка «Неправильное использование групповой функции».

любая помощь будет оценена

enter image description here

Ответы [ 3 ]

2 голосов
/ 10 июля 2019

Если вы не используете group by, вам потребуется подзапрос для вычисления максимального значения:

SELECT *
FROM blog
WHERE blogid <  (select MAX(blogid) 
                 from blog)
ORDER BY createddate DESC
0 голосов
/ 10 июля 2019

Вы можете использовать HAVING с вложенным запросом.Агрегаты в предложении WHERE могут не отображаться, если они не входят в подзапрос, содержащийся в предложении HAVING или в списке выбора

SELECT *
FROM blog
HAVING blogid < (select MAX(blogid) from blog)
ORDER BY createddate DESC
0 голосов
/ 10 июля 2019

вы можете использовать не в

SELECT *
FROM blog
WHERE blogid  not in  ( select MAX(blogid)  from blog)
ORDER BY createddate DESC

для выбора максимального блога, вы должны использовать подзапрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...