oracle中的消极和积极的澄清

时间:2014-08-12 04:55:25

标签: sql oracle

我有产品表。

product_name | quantity
------------   --------
IPhone       |        5
IPhone       |        5
IPhone       |       10
Nokia        |       -9
Nokia        |       -8
Nokia        |       25
Samsung      |       -2
Samsung      |        2
Samsung      |       20

当特定产品的所有记录的数量为正数时,我需要形成SQL查询。在此示例中,所需输出为。

Iphone

1 个答案:

答案 0 :(得分:3)

SELECT PRODUCT_NAME
FROM PRODUCT
GROUP BY PRODUCT_NAME
HAVING MIN(QUANITY) >= 0;

这是学习GROUP BY条款的典型例子。您使用产品名称对所有数据进行分组,并仅查找任何负数量,尝试使用MIN(),这称为聚合(组)功能。

为了过滤分组数据,我们必须使用HAVING子句,而不是使用WHERE子句。因为,WHERE甚至在数据分组之前进行过滤。而HAVING仅在分组完成后进行过滤。