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 に答える