Ist ein "umgedrehtes" GROUP BY möglich?

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

  • Ist ein "umgedrehtes" GROUP BY möglich?

    Hallo!

    Folgendes, ich habe eine Tabelle mit ID, Session-IDs und sogenannten Positionen:

    1 - aaaaaaaaaaaaaa - A2
    2 - aaaaaaaaaaaaaa - B2
    3 - aaaaaaaaaaaaaa - C2
    4 - aaaaaaaaaaaaaa - D2
    5 - bbbbbbbbbbbbbb - A2
    6 - bbbbbbbbbbbbbb - P
    7 - bbbbbbbbbbbbbb - L3
    8 - cccccccccccccccc - A3
    9 - cccccccccccccccc - B3

    usw.

    Ich möchte jetzt zwei Sachen herausfinden: Wie oft diente welche Position als Einstieg (hier wäre es 2x A2, 1x A3) und wie oft diente welche Position als Ausstieg (1x D2, 1x L3, 1x B3)?


    Die Einstiegspositionen kann ich noch recht einfach herausfinden:
    SELECT position FROM ad_hits GROUP BY session_id ORDER BY id ASC

    Das gibt mir dann die Einstiegspositionen. Soweit okay. Aber den umgekehrten Dreh bekomme ich mit einem einzelnen MySQL-Query so nicht heraus. Wenn ich GROUP BY richtig verstehe, werden die Zeilen zusammengefasst und die Position des ersten Eintrags beibehalten. Bei dem zweiten Query bräuchte ich aber die Positionen der letzten Einträge. Ist das irgendwie möglich, ohne großartig hinterher mit PHP irgendwelche Arrays durchrattern zu müssen?


    Bis denne...

    Carsten

  • #2
    ORDER BY id DESC vielleicht?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ich bin verwirrt woher weiss ich denn, was eine ausstiegspostion ist?
      h.a.n.d.
      Schmalle

      http://impressed.by
      http://blog.schmalenberger.it



      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
      ... nur ohne :-)

      Kommentar


      • #4
        die letzte seite, diezu einer session-id gehört

        OffTopic:
        pilze?
        geraucht?
        pilze geraucht?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          OffTopic:
          ich sach nur SSI
          @all: insider
          hab wohl in die falsche pillenschachtel gegrabbelt heute morgen
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            OffTopic:
            wenn du abends nich so viel trinkst klappts morgens auch besser mit augen auf machen und gucken und sehen und der nachbarin und so

            was macht unser forum?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              OffTopic:
              ich poste dazu mal eben im OOO
              h.a.n.d.
              Schmalle

              http://impressed.by
              http://blog.schmalenberger.it



              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
              ... nur ohne :-)

              Kommentar


              • #8
                ORDER BY id DESC vielleicht?
                Leider nicht. Das liefert mir nur die Liste der Einstiegspositionen in einer leicht anderen Reihenfolge.
                woher weiss ich denn, was eine ausstiegspostion ist?
                Anhand der ID (auto-increment) und eines Timestamps, der ebenfalls in der Tabelle sitzt. Habe ich nur nicht extra erwähnt, sorry. Die Position einer Session-ID mit der höchsten ID bzw. dem neusten Timestamp ist die Ausstiegsposition.

                Kommentar


                • #9
                  dann hol dir doch einfach den größten timestamp wert je nach session-id
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Ob ich nun den größten Timestamp oder die größte ID berücksichtige kommt aufs gleiche raus. Das Problem ist, dass durch das GROUP BY nicht die größten Werte, sondern die niedrigsten erhalten bleiben. Ich möchte einfach vermeiden vorher alle möglichen Session-IDs auszulesen und dann für jede Session-ID einen extra Query zu starten, welche Position an der maximalen ID gespeichert wurde. Das können nämlich sehr schnell sehr viele Daten werden.

                    Kommentar


                    • #11
                      SELECT max(feld_timestamp) FROM ad_hits GROUP BY session_id ORDER BY id DESC limit 100
                      h.a.n.d.
                      Schmalle

                      http://impressed.by
                      http://blog.schmalenberger.it



                      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                      ... nur ohne :-)

                      Kommentar

                      Lädt...
                      X