希望你能帮助我,通常我用 R 进行分析,用 SQL 进行基本查询,但我却被一个看似基本的问题绊倒了。
我有一个基本表格:table
ID product % discount (int)
1 a 10
2 a 0
3 a 5
4 b 0
5 b 5
6 b 5
7 c 0
我想计算按产品应用折扣的次数百分比。我尝试了多种方法,但都显示不正确的值或错误,并且我不确定它是否是语法或方法驱动的。
下面是错误代码的示例,但如果有更简单的方法,请告诉我。
我想计算按产品应用折扣的次数百分比。我尝试了多种方法,但都显示不正确的值或错误,并且我不确定它是否是语法或方法驱动的。
SELECT count(discount) as discountN where discount > 0,
count(discountN) * 100.0 / (select count(product_id) from table) as percent
FROM table
group by ID
<小时/>
将总计作为选择计数(*)作为表中的总计 选择数量(折扣)/总计 哪里折扣 > 0 从表 按 ID 分组
我期待:
a: 66%
b: 66%
c: 0%
最佳答案
您可以尝试使用case when
SELECT product,
(count(case when discount > 0 then discount end) * 100.0) / count(product_id) as percent
FROM table
group by product
关于mysql - 使用 SQL 计算出特定事件发生的次数百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56662341/