Announcement

Collapse
No announcement yet.

Gruppiert vs nicht gruppiert: verschiedene Summen

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gruppiert vs nicht gruppiert: verschiedene Summen

    Hallo zusammen
    ich habe eine Aufgabe, eine historisch gewaschsene, ellenlange (40K Zeichen) Abfrage zu überarbeiten und zu verschlanken. Darunter ist eine einzige Zahl (fact), der Rest sind Dimmensionen. Wenn ich die neue (schlanke) und die alte Variante laufen lasse, dann bekomme ich geringfügig andere Summe für das fact-Feld. Um leichter vergleichen zu können, habe ich den where Teil exact gleich bei den beiden belassen. Was sich aber unterscheidet ist der select und der group by. Bei der neuen Lösung fehlt group by komplett.
    Bevor ich mich ins Nirvana begebe und Zeile für Zeile abgleiche, rein theoretisch die Frage: Wie kann sich das Ergebnis einer Afrage unterscheiden, wenn der Filter, also where Teil, gleich sind? N.B. im group by sind gefühlte 10K "case when" statements, die oft dieselbe Felder verwenden und ähnliche Logiken erstellen. Kann es sein, dass dadruch es zu einer Doppelzählung nach alt kommt?

    Hier ein Beispiel nach neu:
    Code:
    select
    Kategorie,
    Zahl
    from A
    where
    GleicheBedingung​
    Beispiel nach alt:

    Code:
    select
    max(Kategorie),
    sum(Zahl)
    from A
    where
    GleicheBedingung
    group by
    case when1,
    bis ca
    case when100000
    Die Schleifen verwenden die Zahl nie und berechnen die Zahl nicht, sondern das ist ein Wert, der direkt aus der DB kommt.

  • #2
    http://www.datenbankforum.com/thread...e-summen.1900/

    Crosspost
    geschlossen
    Christian

    Comment

    Working...
    X