Announcement

Collapse
No announcement yet.

Kumuliert Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kumuliert Abfrage

    Hallo,

    ich stehe wieder einmal vor einem Problem und hoffe, dass mir hier wer helfen kann. Ich solle eine Abfrage erstellen, wo die Anzahl der vorherigen Sätze zum aktuellen Satz hinzugezählt.

    z.B.:
    Code:
    WITH meinetabelle AS 
        ( 
          SELECT 1 id, to_date('11.06.2012','DD.MM.YYYY') datumsfeld FROM dual UNION ALL 
          SELECT 2   , to_date('12.06.2012','DD.MM.YYYY') datumsfeld FROM dual UNION ALL 
          SELECT 3   , to_date('12.06.2012','DD.MM.YYYY') datumsfeld FROM dual UNION ALL 
          SELECT 4   , to_date('13.06.2012','DD.MM.YYYY') datumsfeld FROM dual UNION ALL 
          SELECT 5   , to_date('13.06.2012','DD.MM.YYYY') datumsfeld FROM dual UNION ALL 
          SELECT 6   , to_date('14.06.2012','DD.MM.YYYY') datumsfeld FROM dual  
         ) 
       SELECT datumsfeld, COUNT(*) 
         FROM meinetabelle
        GROUP BY datumsfeld
        ORDER BY datumsfeld
    Das Ergebnis solle dann folgendermaßen aussehen:

    Code:
    DATUM       COUNT(*)   Kum
    ----------- ---------- ----
    11.06.2012    1           1
    12.06.2012    2           3
    13.06.2012    2           5
    14.06.2012    1           6
    Danke
    Urwi

    Oracle 11g

  • #2
    Versuch mal
    Code:
    SELECT datumsfeld, Cnt, SUM(Cnt) OVER (ORDER BY datumsfeld) RunningSum
    FROM meinetabelle ORDER BY datumsfeld
    group by datumsfeld, Cnt
    Gruß, defo

    Comment


    • #3
      DANKE!

      Mit kleiner Korrektur passt es:

      Code:
      SELECT datumsfeld, COUNT(*), SUM(COUNT(*)) OVER (ORDER BY datumsfeld) RunningSum
      FROM meinetabelle 
      group by datumsfeld
      ORDER BY datumsfeld

      Comment


      • #4
        Cnt war ein Platzhalter für den zu summierenden Wert, woauchimmer der herkommt.
        Die Tabelle nennt sich ja vermutlich auch nicht meinetabelle.
        Gruß, defo

        Comment


        • #5
          Hallo defo,

          ich wollte Dich auch nicht verbessern oder Klugsch...., dachte aber, ich stelle es richtig, damit ein anderer mit dem gleichen Problem, bei meinem Beispiel nicht herumprobieren muss.

          Im Übrigen bin ich sehr dankbar, dass es dieses Forum gibt, weil einem sehr schnell geholfen wird und ich auch viel lernen kann.

          Danke an alle die das am Leben erhalten!

          Comment


          • #6
            Kein Thema, hab ich auch nicht so verstanden.
            Mir ging es eher darum, den allgemeinen Ansatz herauszustellen. (wobei das sicher noch deutlich besser geht)
            Die Abfrage dreht sich um "running totals" und der Basiswert muss kein count(*) sein, sondern kann eben etwas beliebiges sein, das fortlaufend aufsummiert wird, count(*), cnt, Preis, sinkender Lagerbestand..
            Gruß, defo

            Comment

            Working...
            X