SQL选择除具有最高值的列以外的所有行

时间:2019-07-10 07:27:40

标签: mysql sql

这是我的表格(博客),所有输出均通过SELECT * *

显示

我正在尝试在Blogid列中选择所有执行最高值的

我尝试使用:

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

我希望它会选择所有低于blogid中最大数字的值,但是会出现错误“无效使用组函数”。

任何帮助将不胜感激

enter image description here

3 个答案:

答案 0 :(得分:2)

如果您不使用分组依据,则需要一个子查询来计算最大值:

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

答案 1 :(得分:0)

您不能在其中使用

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

要选择最大Blogid,您必须使用子查询

答案 2 :(得分:0)

您可以对嵌套查询使用HAVING。除非位于WHERE子句或选择列表中的子查询中,否则HAVING子句中的聚合可能不会出现

SELECT *
FROM blog
HAVING blogid < (select MAX(blogid) from blog)
ORDER BY createddate DESC
相关问题