私は、次のしているデータ階層: レポート>は、多くのインスタンスを持っている....各インスタンスは(カテゴリの有限しかし、未知の量)のMySQL - 孫のカテゴリ集計
それに割り当てられた別のカテゴリがあるかもしれません>多くのモジュールを持っています私は、インスタンスのカテゴリのレポートレベルの集計を作成する必要があります...このような何か:
| report_id | category | # |
| 1 | 1 | 10|
| 1 | 2 | 5 |
| 2 | 7 | 2 |
| 2 | 4 | 14|
私は、MySQLに新しいですし、私は次のことを試してみました:
mysql> SELECT report_id.report_id, module_id.module_id, instance.instance_id, violation.name
-> FROM report_id
-> LEFT JOIN module_id
-> ON report_id.report_id=module_id.report_id
-> LEFT JOIN instance
-> ON module_id.module_id = instance.module_id
-> LEFT JOIN violation
-> ON instance.violation_id = violation.violation_id
-> ORDER BY report_id.report_id
-> ;
製造するため
:
mysql> SELECT violation.name as Category, COUNT(instance.instance_id) AS NumberOfViolations FROM instance
-> LEFT JOIN violation
-> ON instance.violation_id=violation.violation_id
-> GROUP BY name;
+----------------+--------------------+
| Category | NumberOfViolations |
+----------------+--------------------+
| 1 | 2 |
| 2 | 1 |
| 3 | 3 |
+----------------+--------------------+
をしかし、これは、すべての孫の総カテゴリ数を返します。
+-----------+-----------+-------------+----------------+
| report_id | module_id | instance_id | category |
+-----------+-----------+-------------+----------------+
| 1 | 1 | 1 | 1 |
| 1 | 2 | 5 | 1 |
| 1 | 1 | 2 | 2 |
| 1 | 1 | 3 | 3 |
| 1 | 1 | 4 | 3 |
| 1 | 3 | 6 | 3 |
| 2 | NULL | NULL | NULL |
| 3 | NULL | NULL | NULL |
+-----------+-----------+-------------+----------------+
私も試してみました。 (現在、これらの合計をトップレベルのレポートグループで区切る必要があります)
私は、これらの2つのクエリと結びついて正しい表を作成するのに問題があります。どのように進むべきかについての手がかりが役に立つでしょう。
レポートのIDがモジュールのIDとモジュールのIDが一致したインスタンスIDが一致しているのに、このネストされた構造を組み込む方法がわからない場合は、SUMを導入する必要があることがわかりました。
あなたは多くの/いくつかのフィールドでグループ化することができます。 –
大きなヒント...私はそれを今遊んでいます...フォローアップをポストする予定です。だから、Jon Snowのように、私は何も知らない)。 – eMTy