Ich habe herausgefunden, dass CUBE nur alle Permutationen erzeugt, aber ich habe Probleme mit ROLLUP. Es scheint keine guten Quellen online oder in dem Buch zu geben, das ich lese, um SQL für Leute wie mich, die damit kämpfen, zu erklären.
Mein Buch sagt, dass ROLLUP ein Sonderfall des CUBE-Operators ist, der alle Fälle ausschließt, die innerhalb der Ergebnisse keiner Hierarchie folgen.
Ich bin mir nicht ganz sicher, was es bedeutet, aber es auf einem Tisch zu betreiben, den ich gemacht habe, bringt einige nützliche Ergebnisse hervor.
Ich habe eine Tabelle von einer anderen Seite auf Google so gemacht:
%Vor%Dann ist hier eine Abfrage, die ich gemacht habe:
%Vor%Dies zeigt mir die Anzahl von jedem Haustier in jedem Geschäft, und insgesamt Haustiere in jedem Geschäft, das ist ein bisschen cool. Wenn ich die Abfrage basierend auf Haustieren sehen möchte, muss ich die Gruppe nach Reihenfolge umschalten, damit Typ zuerst kommt.
Rollup basierend auf der ersten group by-Klausel?
Die andere Frage ist, ich habe gelesen, dass Sie ROLLUP anstelle von CUBE verwenden, wenn Sie eine Jahres- und eine Monatsspalte haben, um die Aggregation desselben Monats über mehrere Jahre hinweg zu stoppen. Ich denke, ich verstehe, was das bedeutet, aber könnte jemand das klären? Und wie richtest du es so ein?
Können Sie mit ROLLUP auch andere Spaltenkombinationen ausschließen? Meine Tabelle oben ist ziemlich einfach und die Abfrage zeigt Ihnen "Haustiere nach Geschäft", aber wenn es andere Spalten gäbe, könnten Sie sie von den Ergebnissen einschließen / ausschließen?
Am besten anhand eines Beispiels erklärt. Angenommen, Sie gruppieren nach A
, B
, C
. Sie erhalten dann die folgenden Gruppierungen mit Rollup:
Sie sehen also, dass die Reihenfolge wichtig ist, wie Sie bereits herausgefunden haben. Wenn Sie nach A
, C
, B
gruppieren, erhalten Sie stattdessen die folgenden Gruppierungen:
Tags und Links sql