我有一张这样的表:
id | opt1 | opt2 | opt3
1 | valX | valY | valY
2 | valX | valX | valY
3 | valY | valZ | valX
所以我需要准备数据以显示PIE图表,它需要看起来像:
id | valX | valY | valZ
1 | 1 | 2 | 0
2 | 2 | 1 | 0
3 | 1 | 1 | 1
编写mysql查询的正确方法是什么? 我想我必须首先列出所有列但后续步骤?
答案 0 :(得分:0)
试试这个
SELECT ID,
CASE WHEN opt1='valX' THEN 1 ELSE 0 END + CASE WHEN opt2='valX' THEN 1 ELSE 0 END + CASE WHEN opt3='valX' THEN 1 ELSE 0 END AS valX,
CASE WHEN opt1='valY' THEN 1 ELSE 0 END + CASE WHEN opt2='valY' THEN 1 ELSE 0 END + CASE WHEN opt3='valY' THEN 1 ELSE 0 END As valY,
CASE WHEN opt1='valZ' THEN 1 ELSE 0 END + CASE WHEN opt2='valZ' THEN 1 ELSE 0 END + CASE WHEN opt3='valZ' THEN 1 ELSE 0 END As valZ
FROM TableName
答案 1 :(得分:0)
标准化设计可能如下所示:
id option_id option_value
1 1 X
1 2 Y
1 3 Y
2 1 X
2 2 X
2 3 Y
3 1 Y
3 2 Z
3 3 X
从这里开始,您的查询很简单。