はまず、ここで私が操作しようとしているテーブルの一例であるが返されます。MySQLの - サブクエリが複数の1行
##################################
# TABLE_A #
##################################
+----------+----------+----------+
| ID | COLUMN_A | COLUMN_B |
+----------+----------+----------+
| 1 | 24 | 1 |
| 2 | 53 | 1 |
| 3 | 12 | 1 |
| 4 | 87 | 2 |
| 5 | 63 | 2 |
| 6 | 55 | 3 |
| 7 | 39 | 3 |
| 8 | 47 | 3 |
| 9 | 85 | 3 |
+----------+----------+----------+
私はときCOLUMN_B column_aの各値の割合を計算します同じ値を持ちます。例えば
、COLUMN_B = 1、24 + 53 + = 89 12私たちは以下のパーセンテージを取得する:
- 24:27%
- 53:60%
- 12 :13%
私はあなたがこの要求に見ることができるようにCOLUMN_Bの値を示すために、「WHERE」を使用する場合これが働いている:
SELECT ROUND(
(column_a*100)/(SELECT SUM(column_a)
FROM TABLE_A
WHERE column_b=1)
) AS RESULT
FROM TABLE_A
where column_b=1;
+--------+
| RESULT |
+--------+
| 27 |
| 60 |
| 13 |
+--------+
ただし、column_bの値ごとにすべてのパーセンテージを計算しようとすると、それでも機能しません。
私が「BY GROUP」が、エラーでこれを行うことを試みた起こっ「サブクエリは複数の行を返す」:私はこのエラーを持っている理由私は理解
SELECT ROUND(
(column_a*100)/(SELECT SUM(column_a)
FROM TABLE_A
GROUP BY column_b)
) AS RESULT
FROM TABLE_A;
第SELECT戻り3つの値のためこれらを連続して分割することはできません。では、私はどうしたらいいですか?
うわー、本当にありがとうございました! – Paktros