2013-03-11 1439 views
1

我试图计算MySQL查询中的百分比。MySQL数学函数 - 获取完成百分比 - (添加2列,除法和乘法)

我有一个表:

Table: Domains 
id url_count checked tablekey_id 
1 2   1   10 
2 1   2   10 
3 1   1   15 
4 2   1   22 
5 2   2   10 

所以数学:

((SUM of the `url_count` column where `checked` >= 2 and `tablekey_id` = 10)/(SUM of the `url_count` column where `tablekey_id` = 10)) *100) 

为上述等式中的数字将如下所示: (3/5)* 100 = 60%

感谢一帮家伙!我没有意识到你可以把一个if语句放在SUM里面。我非常担心我的原始问题,所以我想发布我的解决方案,以防有人遇到同样的问题。

SELECT (
(SUM(IF(`checked` >= 1, `url_count`, 0))/SUM(`url_count`))*100 
) AS percent 
FROM `google_sort_backlink_domains` 
WHERE `tablekey_id` = 10 
+1

您的“问题”不会提出任何问题。它应该包含以“?”结尾的疑问句。 – 2013-03-11 16:56:23

回答

1

尝试使用IF()函数,例如, -

SELECT (
    SUM(IF(checked >= 2, url_count, 0))/COUNT(IF(checked <= 2, 0, NULL)) 
) * 100 
FROM table 
+0

谢谢你,我用你的解决方案,它运作良好。 – RachelC 2013-03-11 17:15:17

1

@ Devart的答案是100%正确的,但你也可以做到这一点使用CASE语法我如下图所示。

SELECT (
    SUM(CASE WHEN checked >= 2 THEN url_count ELSE 0 END)/COUNT(CASE WHEN checked <= 2 THEN 0 END) 
) * 100 
FROM table 
+0

谢谢。我采用了不同的解决方案,但我会在下一次处理查询时记住Case语句。 – RachelC 2013-03-11 17:15:51