1

我试图计算 MySQL 查询中的百分比。

我有一张桌子:

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%

谢谢一群人!我没有意识到您可以在 SUM 中放置 if 语句。我的原始问题措辞非常糟糕,所以我想发布我的解决方案,以防有人遇到同样的问题。

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

2 回答 2

1

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

SELECT (
    SUM(IF(checked >= 2, url_count, 0)) / COUNT(IF(checked <= 2, 0, NULL))
  ) * 100
FROM table
于 2013-03-11T16:58:28.153 回答
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
于 2013-03-11T17:09:45.333 回答