mysql - 使用 SQL 计算出特定事件发生的次数百分比

标签 mysql sql sql-server

希望你能帮助我,通常我用 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/

相关文章:

c# - Entity Framework 包含没有关系

mysql - 计数排除最大和最小出现次数

MySQL - 查询未输出正确的响应

php - mysql_connect() 错误信息

sql - 使用 SQL 连接显示正确的结果

c# - 用于计算数据库中已查看元素数量的 Angular 组件

mysql - 外键 Laravel 8foreignId + 约束 - 无法添加或更新子行 : a foreign key constraint fails

php - 我的自定义 php 函数有问题

sql - H2数据库中的Oracle MERGE语句

php - 单个字段上的 SQL 多个条件