计算百分比,同时遗漏空白条目

时间:2014-08-01 10:06:57

标签: mysql

我有一个名为feedback的表,用于监控事件的反馈:

id, heardabout, booking
0   friend      0
1   online      5
2   friend      3

我一直在使用此查询计算出它们的百分比:

SELECT `booking` AS `rating`, (COUNT(`booking`) * 100 / (Select COUNT(*) FROM `feedback`)) AS `percent` FROM `feedback` GROUP BY `booking`;

产生:

rating, percent
0       10.1449
3       5.7971
4       13.0435
5       71.0145

哪个好,而且正确。但是,我不想算数' 0' 0某些字段的条目(这意味着它们不适用于用户)我将如何进行此操作?只需将WHERE预订!= '0'添加到上述查询中即可完成任何操作,但不会将其删除,数字不会发生变化,因此不会加起来为100。

1 个答案:

答案 0 :(得分:0)

为了将来参考,我实际上解决了这个问题:

我需要的SQL语句是:

SELECT `booking` AS `rating`, 
(COUNT(`booking`) * 100 / (Select COUNT(*) FROM `feedback` WHERE `booking` != '0')) AS `percent` 
FROM `feedback`  WHERE `booking` != '0' GROUP BY `booking`;

关键是将WHERE条件放在子查询SELECT COUNT (*)内(以及最后)。这意味着要除以的总数为而不是为'0'条目。