我正在使用 Chartio 创建图表,我需要从我的 MySQL 数据库中检索一些计算值。
只有一个表,它包含几个包含成绩的列(这是从 CSV 导入的,因此它是一个“平面数据库”)。列名如下:1a_grade、1b_grade、1c_grade、2a_grade 等。
每个等级的值可以是“0”、“1”、“2”、“3”和“-”。
我想返回一个如下所示的表:
+-----------+-------+-------+
| GradeName | Grade | Count |
+-----------+-------+-------+
| 1A | 0 | 4 |
| 1A | 1 | 9 |
| 1A | 2 | 2 |
| 1A | 3 | 8 |
| 1A | - | 19 |
| 1B | 0 | 6 |
| 1B | 1 | 2 |
| 1B | 2 | 8 |
| 1B | 3 | 10 |
| 1B | - | 24 |
+-----------+-------+-------+
(这里的计数只是随机数)
我希望以这种方式格式化表格的原因是因为(据我所知)这是使 Chartio 正确绘制图表且轴位于正确位置的唯一方法......
到目前为止,我想出了:
SELECT 1a_grade, COUNT(*)
FROM opc_protocol
GROUP BY 1a_grade;
这给了我:
+----------+----------+
| 1a_grade | COUNT(*) |
+----------+----------+
| - | 1 |
| 0 | 6 |
| 1 | 32 |
+----------+----------+
(实际计数)
问题是,因为我还没有值为“2”或“3”的条目,所以当我 GROUP BY 1a_grade 时,我没有得到它们的行。我想按文字“0”、“1”、“2”、“3”和“-”进行分组。
另一个问题是我没有在列中获得 GradeName。
第三个问题是我无法获得多个成绩:)
有谁知道这是否可以做到?
问候,
延斯