0

我正在尝试选择某个列没有特定值的行,例如 0,但我无法让它工作。

SELECT *
FROM rentals
GROUP BY date, rooms, price 
HAVING show_independently < 1

如果show_independently是 1,那么我不想将它们分组。但是,即使大多数行show_independently的值为 0,此语句也不显示任何行。

4

3 回答 3

2
SELECT date, rooms, price 
FROM rentals
WHERE show_independently < 1
GROUP BY date, rooms, price 
于 2012-11-25T18:14:25.330 回答
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 
于 2012-11-25T18:16:53.017 回答
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 的部分进行分组,并包括其余部分而不对它们进行分组。

于 2012-11-25T18:37:24.190 回答