Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

Frage zu Grouping Sets / Rollup

Im Bereich SQL für Fortgeschrittene werden komplexe SQL Statements behandelt...

Frage zu Grouping Sets / Rollup

Beitragvon Frankie » Mi 19. Dez 2018, 12:20

Hallihallo

Ich hoffen jemand kann helfen :)
Folgendes "Problem".

Angenommen ich habe eine Tabelle "FruchteVerkauf", welche sich durch folgende Spalten definiert:

Jahr | Frucht | AnzVerkauft

Daraus berechne ich den prozentualen Anteil pro Frucht über einen längeren Zeitraum. Z.B.:

Code: Alles auswählen
Select jahr, frucht, AnzahlVerkauft, round(100/(select count(*) from FruchteVerkauf)*anzahlVerkauft),2) as prozent from FruchteVerkauf where jahr >= 2014 group by rollup (jahr, frucht);


Damit erhalte ich den prozentualen Anteil pro Frucht und Jahr --> alle Früchte zusammen über alle ausgegebenen Jahre ergeben 100%.
z.B.:
2014 Äpfel 2500 10%
2014 Birnen 2000 8%
2014 Orangen 1000 4%
2014 5500 22%
2015 Äpfel 3000 12%
2015 Birnen 500 2%
2015 Orangen 1500 6%
2015 5000 20%
........
25000 100%

Was ich aber möchte ist, dass der prozentuale Anteil pro Jahr angezeigt wird (ohne Aggregat über alles).

Also sowas:
2014 Äpfel 2500 45%
2014 Birnen 2000 36%
2014 Orangen 1000 18%
2014 5500 100%
2015 Äpfel 3000 60%
2015 Birnen 500 10%
2015 Orangen 1500 30%
2015 5000 100%

Kriege ich das mit Grouping irgendwie hin, oder müsste ich da zu anderen Mitteln und Methoden greifen?

Bin für jeden Hinweis dankbar :)

{
Obenstehende Tabelle und Abfrage sind fiktiv und soeben frei erfunden und nicht überprüft.
Dient rein der Veranschaulichung.
Und: Sorry, bin nicht so ein Forenhirsch und hab leider nicht herausgefunden wie man hier Tabellen erstellen kann!? :?:
}

Herzlichen Dank und liebe Grüsse
Frankie
Frankie
 
Beiträge: 2
Registriert: Fr 21. Sep 2018, 16:21

Zurück zu SQL für Fortgeschrittene - aus der Praxis für die Praxis

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: