Die ROLLUP-Funktion ist ein leistungsstarkes Tool in SQL, mit dem Sie Zwischensummen und Gesamtsummen in aggregierten Abfragen generieren können. Diese Funktion ist besonders nützlich für Berichte und Analysen, bei denen konsolidierte Werte auf verschiedenen Detailebenen berechnet werden müssen.
Die Funktion ROLLUP wird in Verbindung mit der GROUP BY-Klausel verwendet, um hierarchische Gruppierungen zu erstellen. Es fügt automatisch zusätzliche Zeilen hinzu, die Zwischensummen (Teilsummen) und die Gesamtsumme am Ende der Abfrage darstellen.
SELECT column1, column2, aggregation(column3) FROM table GROUP BY ROLLUP(column1, column2);
Lassen Sie uns mit der im obigen Code erstellten Produkttabelle arbeiten, die Informationen zu Produkten und ihren Kategorien enthält.
Wenn wir nur die Gruppierung nach Kategorie abfragen, erhalten wir folgendes Ergebnis:
SELECT product_category, SUM(product_value) AS total FROM products GROUP BY product_category;
Ergebnis:
Category | Total |
---|---|
clothing | 40.48 |
food | 6.97 |
Durch das Hinzufügen der ROLLUP-Funktion beziehen wir die Zwischensummen und die Gesamtsumme ein:
SELECT CASE WHEN product_category IS NULL THEN 'Grand Total' ELSE product_category END AS category, SUM(product_value) AS total FROM products GROUP BY ROLLUP(product_category);
Ergebnis:
Category | Total |
---|---|
clothing | 40.48 |
food | 6.97 |
Grand Total | 47.45 |
Wir können noch weiter gehen und Zwischensummen auf mehreren Ebenen berechnen. Um beispielsweise Zwischensummen nach Kategorie und Produkt zu berechnen:
SELECT CASE WHEN product_category IS NULL AND product_name IS NULL THEN 'Grand Total' WHEN product_name IS NULL THEN 'Subtotal - ' || product_category ELSE product_name END AS description, SUM(product_value) AS total FROM products GROUP BY ROLLUP(product_category, product_name);
Ergebnis:
Description | Total |
---|---|
T-shirt | 10.99 |
Shorts | 8.99 |
Shoes | 20.50 |
Subtotal - clothing | 40.48 |
Rice | 1.99 |
Popcorn | 0.99 |
Filet Steak | 3.99 |
Subtotal - food | 6.97 |
Grand Total | 47.45 |
Die ROLLUP-Funktion vereinfacht die Erstellung komplexer Berichte und reduziert den Bedarf an manuellen Manipulationen. Diese Funktionalität wird von vielen Datenbanken wie Oracle, SQL Server und MySQL unterstützt. Nutzen Sie es, um Ihre Abfragen effizienter und Ihre Berichte dynamischer zu gestalten! ?
Das obige ist der detaillierte Inhalt vonROLLUP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!