检索项目类型,项目类别和平均价格四舍五入到FMCG,计算机类型项目的两个小数位。平均价格必须低于2000。
ITEMCODE ITEMTYPE DESCR PRICE REORDERLEVEL QTYONHAND CATEGORY
I1001 FMCG Britannia Marie Gold Cookies 20 100 1000 C
I1002 FMCG Best Rice 120 100 1000 C
I1003 FMCG Modern Bread 15 100 1000 C
I1004 Apparels Lee T-Shirt 300 100 1000 B
I1005 Apparels Levis T-Shirt 1700 100 1000 B
I1006 Apparels Satyapaul Sari 7300 100 1000 A
我的查询是否正确?
SELECT ItemType, Category, ROUND(AVG(Price),2)
FROM Item
WHERE (ItemType = 'FMCG')
OR (ItemType = 'Computer')
AND (Avg(Price) < 2000)
GROUP BY ItemType;
答案 0 :(得分:1)
几乎正确,你不能在WHERE子句中使用聚合函数,你应该把它们放在一个HAVING子句之后,就像这样:
SELECT ItemType, Category, ROUND(AVG(Price),2)
FROM Item
WHERE ItemType in('FMCG','Computer')
GROUP BY ItemType,Category;
HAVING Avg(Price) < 2000
我对您的查询进行了两次调整。首先,在将同一列与多于1的值进行比较时,请使用IN而不是OR&#39; s。
其次,我认为查询也应按类别分组,因为它并不总是相同,但如果您知道不应该从group by子句中删除它。