. Typ2 ayrıca süreye sahiptir.SQL: bir değerin toplamı, ancak yalnızca farklı kimlikleri için - koşullu toplam?</p> <p>Gün Typ1 ve TYP2, Typ1 birden olaylarla ve kendi günlere yabancı anahtarlara sahip TYP2: Ben yapısı şu var
Şimdi bütün Typ1 olayları, bütün TYP2 etkinliklerle TYP2 süresinin toplamı saymak istiyorum.
Örnek Verileri:
Gün:
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
şimdi sonucunu istiyorum:
Day.ID = 1 | countTyp1 = 2 | countTyp2 = 2 | sumDurationTyp2 = 30
Sorunum toplamı, "farklı tip2.ID için toplam" gibi bir şeye ihtiyacım var ... Herkes bunu çözmek için bir yol biliyor mu? katılmadan önce,
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;
bu Benim genel yaklaşım ön agrega her tablo için
Ne RDBMS ve hangi sürümünün? – Tobsey