Hi
Mal angenommen ich habe über mehrere Joins nun mehrmals den gleichen Datensatz von der Tabelle mit den Kosten:
ID | Kosten
1 | 12.0
2 | 11.5
3 | 10.0
1 | 12.0
2 | 11.5
3 | 10.0
Mit einem sum(Kosten) bekomme ich 67.5 - was natürlich falsch ist. Also könnte man ja ein sum(distinct Kosten) nehmen und käme dann auf 33.5 - was hier richtig ist.
Wenn die Tabelle aber so aussieht:
ID | Kosten
1 | 12.0
2 | 11.5
3 | 12.0
1 | 12.0
2 | 11.5
3 | 12.0
Funktioniert sum(distinct Kosten) nicht mehr (ergibt 23.5 - richtig wäre aber 35.5). Das Problem ist, dass die Zahl 12.0 zweimal bei unterschiedlichen Datensätzen vorkommt.
Für diesen Fall kann ich es noch so lösen:
sum(kosten)/(count(id)/count(distinct id))
Wenn aber nicht jeder Datensatz doppelt vorkommt:
ID | Kosten
1 | 12.0
2 | 11.5
3 | 12.0
2 | 11.5
3 | 12.0
Funktioniert das auch nicht mehr.
Mich würde interessieren wie ihr hier vorgeht und ob es eventuell eine elegante (!= mehrere Queries) Lösung für das Problem gibt?
Grüsse
jeipack
Mal angenommen ich habe über mehrere Joins nun mehrmals den gleichen Datensatz von der Tabelle mit den Kosten:
ID | Kosten
1 | 12.0
2 | 11.5
3 | 10.0
1 | 12.0
2 | 11.5
3 | 10.0
Mit einem sum(Kosten) bekomme ich 67.5 - was natürlich falsch ist. Also könnte man ja ein sum(distinct Kosten) nehmen und käme dann auf 33.5 - was hier richtig ist.
Wenn die Tabelle aber so aussieht:
ID | Kosten
1 | 12.0
2 | 11.5
3 | 12.0
1 | 12.0
2 | 11.5
3 | 12.0
Funktioniert sum(distinct Kosten) nicht mehr (ergibt 23.5 - richtig wäre aber 35.5). Das Problem ist, dass die Zahl 12.0 zweimal bei unterschiedlichen Datensätzen vorkommt.
Für diesen Fall kann ich es noch so lösen:
sum(kosten)/(count(id)/count(distinct id))
Wenn aber nicht jeder Datensatz doppelt vorkommt:
ID | Kosten
1 | 12.0
2 | 11.5
3 | 12.0
2 | 11.5
3 | 12.0
Funktioniert das auch nicht mehr.
Mich würde interessieren wie ihr hier vorgeht und ob es eventuell eine elegante (!= mehrere Queries) Lösung für das Problem gibt?
Grüsse
jeipack