Ankündigung

Einklappen
Keine Ankündigung bisher.

ersten eintrag jedes Monat/Jahr ausgeben

Einklappen

Neue Werbung 2019

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

  • ersten eintrag jedes Monat/Jahr ausgeben

    Hallo,

    Ich habe ein Mysql Tabelle mit folgenden Spalten:
    Zeit/Wert1/Wert2/....

    diese beinhaltet pro Tag eine Zeile.

    es kann leider sein das gar kein wert am 1. jedse Monats vorhanden ist.
    in einen solchen fall hätte Ich gerne den 2 tag usw....

    Nun möchte Ich die 1 Werte jedes Monats und jedes Jahres ausgeben.
    (2 seperate abfragen.)

    wie löst man dies in SQL?

    danke


  • #2
    Zitat von tiego Beitrag anzeigen

    es kann leider sein das gar kein wert am 1. jedse Monats vorhanden ist.
    in einen solchen fall hätte Ich gerne den 2 tag usw....

    Nun möchte Ich die 1 Werte jedes Monats und jedes Jahres ausgeben.
    (2 seperate abfragen.)

    wie löst man dies in SQL?

    danke
    So z.B.:

    Code:
    test=*# select * from messung order by d;
         d      | val
    ------------+-----
     2014-01-02 |  10
     2014-02-03 |  12
     2014-02-05 |   4
     2014-02-08 |   6
     2014-05-06 |  13
    (5 rows)
    
    Time: 0,183 ms
    test=*# select d, val from (select d, val, row_number() over (partition by date_trunc('month',d) order by d) from messung order by d) foo where row_number = 1;
         d      | val
    ------------+-----
     2014-01-02 |  10
     2014-02-03 |  12
     2014-05-06 |  13
    (3 rows)
    
    test=*# select d, val from (select d, val, row_number() over (partition by date_trunc('year',d) order by d) from messung order by d) foo where row_number = 1;
         d      | val
    ------------+-----
     2014-01-02 |  10
    (1 row)
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      @akretschmer:

      select d, val from (select d, val, row_number() over (partition by date_trunc('year',d) order by d) from messung order by d) foo where row_number = 1;
      != MySQL

      @tiego: statt z.B. date_trunc kannst du EXTRACT oder DATE_FORMAT nutzen, Zudem findest du relativ viel, wenn du richtig googelst zu dem Thema.

      mfg wolf29
      while (!asleep()) sheep++;

      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

      Kommentar


      • #4
        Zitat von wolf29 Beitrag anzeigen
        @akretschmer:

        != MySQL


        mfg wolf29
        Er fragte, Zitat: "wie löst man dies in SQL?". Window-Funktionen gehören zum SQL-Standard. Funktionen wie date_trunc(), extract() und so sind nicht definiert.
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Er fragte, Zitat: "wie löst man dies in SQL?". Window-Funktionen gehören zum SQL-Standard. Funktionen wie date_trunc(), extract() und so sind nicht definiert.
          siehe

          Ich habe ein Mysql Tabelle mit folgenden Spalten:
          while (!asleep()) sheep++;

          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

          Kommentar


          • #6
            danke,
            leider bin Ich noch zimlich neu im bereich PHP und Mysql und stehe oft auf der Leitung...

            die angepasste querry von mir beinhaltet aber leider fehler:

            Code:
            select `Zeit`, `Verbrauch Haus (W)`,`Produktion PV (W)`,`Verbrauch Auto (W)` from (select `Zeit`, row_number() over (partition by DATE_FORMAT(`Zeit`,'month') order by `Zeit`) from knxhs1 order by `Zeit`) foo where row_number = 1
            Datenbank:
            Code:
            ID 	Zeit 	Verbrauch Haus (W) 	Produktion PV (W) 	Verbrauch Auto (W) 	
            927 	2014-08-29 08:30:45.000000 	135 	982 	0
            928 	2014-08-29 08:30:48.000000 	135 	982 	0
            929 	2014-08-29 08:31:45.000000 	146 	831 	0
            930 	2014-08-29 08:31:48.000000 	146 	831 	0
            931 	2014-08-29 08:39:48.000000 	103 	993 	0
            932 	2014-08-29 08:40:45.000000 	103 	880 	0
            933 	2014-08-29 08:40:48.000000 	103 	880 	0
            ...

            Kommentar


            • #7
              Zitat von tiego Beitrag anzeigen
              danke,
              leider bin Ich noch zimlich neu im bereich PHP und Mysql und stehe oft auf der Leitung...

              die angepasste querry von mir beinhaltet aber leider fehler:
              Pech für Dich, bei mir funktioniert das, ich hab aber PostgreSQL, kein primitives MySQL.
              PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

              Kommentar


              • #8
                danke,
                aber leider hilft mir dies nicht recht weiter.

                Kommentar


                • #9
                  @tiego: http://stackoverflow.com/questions/1...-current-month
                  while (!asleep()) sheep++;

                  Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                  Kommentar


                  • #10
                    Danke,

                    leider auch nicht das Richtige.
                    Ich benötige jedes Monat (bzw. Jahr) die ersten Werte inkl Zeit.

                    Kommentar


                    • #11
                      leider auch nicht das Richtige.
                      Ich benötige jedes Monat (bzw. Jahr) die ersten Werte inkl Zeit.
                      ..ist aber nicht mehr so schwierig, das jetzt anzupassen! Hast du dir die Beispiel mit dateadd usw mal genauer angeschaut (kennst du die Funktionen)?

                      mfg Wolf29
                      while (!asleep()) sheep++;

                      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                      Kommentar


                      • #12
                        danke...

                        sorry immer noch Bahnhof.

                        Kommentar


                        • #13
                          Zitat von tiego Beitrag anzeigen
                          danke...

                          sorry immer noch Bahnhof.
                          Google nach 'mysql groupwise max'. Einfacher wäre aber der Download von hier:
                          http://www.postgresql.org/download/
                          PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                          Kommentar


                          • #14
                            Das hat jetzt schon "Drücker"-Qualitäten...
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              Zitat von Arne Drews Beitrag anzeigen
                              Das hat jetzt schon "Drücker"-Qualitäten...
                              Hehe. Aber ich hab ihm auch gesagt, was er googeln kann, es gibt eine Lösung für mysql.
                              PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                              Kommentar

                              Lädt...
                              X