0

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番目の問題は、複数の成績を取得できないことです:)

これができるかどうか誰にもわかりますか?

よろしく、
ジェンス

4

1 に答える 1