我正在尝试选择某个列没有特定值的行,例如0,但是我无法让它工作。
SELECT *
FROM rentals
GROUP BY date, rooms, price
HAVING show_independently < 1
如果show_independently
为1,那么我不想将它们分组。但是,即使大多数行的show_independently
为0,此语句也不显示任何行。
答案 0 :(得分:2)
SELECT date, rooms, price
FROM rentals
WHERE show_independently < 1
GROUP BY date, rooms, price
答案 1 :(得分:0)
当您使用聚合函数过滤数据时,将使用HAVING
子句。
使用HAVING
的典型查询:
SELECT yourColumn, aggregate_function(otherColumn)
FROM yourTable
WHERE yourColumn = someValue
GROUP BY yourColumn
HAVING aggregate_function(otherColumn) = someOtherValue
我认为您希望使用WHERE
子句:
SELECT date, rooms, price
FROM rentals
WHERE show_independently < 1
GROUP BY date, rooms, price
答案 2 :(得分:0)
如果您只想将某些行分组并将其他行保留为未分组,则可以使用UNION
:
SELECT *
FROM rentals
WHERE show_independently <> 1
GROUP BY date, rooms, price
UNION ALL
SELECT *
FROM rentals
WHERE show_independently = 1
仅对show_independently
不为1的那些进行分组,并将其余部分分组,而不对其进行分组。