私は次の構造を持っています:
typ1 と typ2 の複数のイベントがある日。typ1 と typ2 は、それぞれの日への外部キーを持ちます。Typ2 にも期間があります。
ここで、すべての typ1 イベント、すべての typ2 イベント、および typ2 期間の合計をカウントしたいと考えています。
サンプルデータ:
日:
ID = 1 | Date = yesterday | ...
Typ1:
ID = 1 | FK_DAY = 1 | ...
ID = 2 | FK_DAY = 1 | ...
Typ2:
ID = 1 | FK_DAY = 1 | duration = 10
ID = 2 | FK_DAY = 1 | duration = 20
私は今結果が欲しい:
Day.ID = 1 | countTyp1 = 2 | countTyp2 = 2 | sumDurationTyp2 = 30
私の問題は合計です。「個別のtyp2.IDの合計」のようなものが必要です...誰もそれを解決する方法を知っていますか?
私は次のようなものを使用していますが、もちろんそれは私が望むようには機能しません:
SELECT day.id,
count( DISTINCT typ1.id ),
count( DISTINCT typ2.id ),
sum( duration ) AS duration
FROM days
LEFT JOIN typ
ON day.id = typ1.id
LEFT JOIN typ2
ON day.id = typ2.id
GROUP BY day.id;