我努力让我的查询工作但是没有成功:
SELECT column1, MIN(column2) AS min_column2
FROM table1
WHERE column4 = 'hi'
GROUP BY column_id
HAVING (column3 > 0 OR min_column2 > 0)
我需要min_column2
使用OR
,你会怎么做?
由于
答案 0 :(得分:3)
你无法在哪里混音
SELECT column1, MIN(column2) AS min_column2
FROM table1
WHERE column3 > 0
HAVING min_column2 >
并且为了正确使用聚合函数,您应该使用group by ::
SELECT column1, MIN(column2) AS min_column2
FROM table1
WHERE column3 > 0
GROUP By column1
HAVING min_column2 >
不在聚合函数中的列的选择以及在group by中的引用是在sql中不推荐使用并且在最后一个版本的mysql中不允许
由于您更改了添加缺失组的问题并更改了新答案的规则
对结果进行处理,如果你想要对column3进行过滤,你也必须选择这个列
SELECT column1, column3, MIN(column2) AS min_column2
FROM table1
WHERE column4 = 'hi'
GROUP BY column1, column3
HAVING (column3 > 0 OR min_column2 > 0)
您必须在组中引用您在聚合函数中不使用的选择列中的相同列