Ankündigung

Einklappen
Keine Ankündigung bisher.

[Oracle] größter Datumswert pro Kalenderwoche anzeigen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Oracle] größter Datumswert pro Kalenderwoche anzeigen

    Hallo,



    ich versuche schon seit längerem ein Problem zu lösen:

    Ich habe eine Liste mit einem Datum und Werten.

    Nun möchte ich gerne das Datum in Kalenderwochen umändern (das funktioniert auch ganz gut).

    SELECT GLZH_DATE, to_char(to_date(GLZH_DATE), 'iw') AS KW, GLZH_ACTUAL from HRF_GLZH;



    Ausgabe:

    8.05.2020,24,20.5

    9.06.2020,24, 23.5

    10.06.2020,24, 25.8

    22.05.2020,26,20.5

    23.06.2020,26, 23.5

    24.06.2020,26, 25.8





    Nun kommt aber mein Problem:

    ich möchte, dass nur das älteste Datum innerhalb einer Kalenderwoche angezeigt wird. Im Beispiel wäre das dann:

    10.06.2020,24, 25.8

    24.06.2020,26, 25.8

    Wie kann ich das in einer Oracle-Datenbank umsetzen?



  • #2
    Das Problem nennt sich groupwise maximum, damit findest du bei google unzählig Lösungen.

    Kommentar


    • #3
      Hallo erc,

      vielen Dank für die schnelle Hilfe!
      ich habe mich mal durchgegoogelt, habe aber leider keine Lösung gefunden (bin mehr der Front-end-Entwickler...)

      Kannst Du mir vielleicht noch einen Tipp geben?

      Kommentar


      • #4
        Ich glaube ich hab die Lösung...

        HTML-Code:
        SELECT datum, kw, wert 
        FROM test 
        WHERE datum IN ( SELECT MAX(datum) FROM test GROUP BY kw ) 
        ORDER BY kw ASC
        Werde es Morgen mal mit Oracle testen...

        Danke ecr für den Tipp.

        Kommentar


        • #5
          https://dev.mysql.com/doc/refman/8.0...group-row.html

          Kommentar


          • #6
            Zitat von CodeNinja71 Beitrag anzeigen
            Ich glaube ich hab die Lösung...

            HTML-Code:
            SELECT datum, kw, wert
            FROM test
            WHERE datum IN ( SELECT MAX(datum) FROM test GROUP BY kw )
            ORDER BY kw ASC
            Werde es Morgen mal mit Oracle testen...

            Danke ecr für den Tipp.
            andere Lösungen:
            • Window-Funktionen
            • lateral join


            Damit wäre es dann auch einfacher, die TOP N jeweils darzustellen, dazu wäre lateral join noch effizienter. Ob ORA lateral joins kann weiß ich aber nicht.
            PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

            Kommentar

            Lädt...
            X