我有产品表。
product_name | quantity
------------ --------
IPhone | 5
IPhone | 5
IPhone | 10
Nokia | -9
Nokia | -8
Nokia | 25
Samsung | -2
Samsung | 2
Samsung | 20
当特定产品的所有记录的数量为正数时,我需要形成SQL查询。在此示例中,所需输出为。
Iphone
答案 0 :(得分:3)
SELECT PRODUCT_NAME
FROM PRODUCT
GROUP BY PRODUCT_NAME
HAVING MIN(QUANITY) >= 0;
这是学习GROUP BY
条款的典型例子。您使用产品名称对所有数据进行分组,并仅查找任何负数量,尝试使用MIN()
,这称为聚合(组)功能。
为了过滤分组数据,我们必须使用HAVING
子句,而不是使用WHERE
子句。因为,WHERE
甚至在数据分组之前进行过滤。而HAVING
仅在分组完成后进行过滤。