我正在尝试完成一些练习,我必须显示有多少产品的价格在20以上,占总价格的百分比。我可以很容易地显示价格超过20的产品,但是我不确定如何以百分比的形式回答这个问题。产品总数为77。
- 显示一个表,其中包含(1)类别名称和(2)该类别中有多少产品的价格超过该类别中产品总数的20(百分比)。
到目前为止,我已经写过:
SELECT categoryname, price
FROM [Products]
WHERE price > 20
这告诉我有37条记录。
答案 0 :(得分:3)
Count
(和类似的聚合函数)忽略null
。您可以使用case
表达式来使价格不超过20的产品无效并对其进行计数,从而为您提供价格超过20的产品计数。将该计数除以总计数可得出一定百分比:
SELECT category, 100 * COUNT(CASE WHEN price > 20 THEN 1 END) / COUNT(*) AS percentage
FROM products
GROUP BY category