Chartio でチャートを作成していますが、MySQL DB から計算値を取得する必要があります。
テーブルは 1 つだけで、成績を保持する複数の列が含まれています (これは 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」、「-」でグループ化したい。
もう 1 つの問題は、列に GradeName が表示されないことです。
3番目の問題は、複数の成績を取得できないことです:)
これができるかどうか誰にもわかりますか?
よろしく、
ジェンス