Wie alt sind die User?

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

  • Wie alt sind die User?

    Hi,

    ich bin gerade ein bischen Statistik am machen. Natürlich interessiert mich das alter der User.

    Ich rechen das Alter momentan ein wenig umständlich aus:
    PHP-Code:
    $sql "SELECT  round( ".
           
    "  (unix_timestamp(now()) - unix_timestamp(birthday)) ".
           
    "  /31536000 "//sekunden eines Jahres
           
    ") , birthday FROM tab"
    Meine Frage nun, gibt es einen besser Weg? Bin auch am überlegen wie ich das grad schon in Altergruppen einteilen kann, aber dazu erst im nächsten Schritt.


    Dank euch.

  • #2
    Grad noch einen hinterher:

    Das zählen is ja verhältnismäßig simpel:
    PHP-Code:
    SELECT 
    round
    ( (unix_timestamp(now()) - unix_timestamp(birthday))/31536000 ) AS age
    count(round( (unix_timestamp(now()) - unix_timestamp(birthday))/31536000 )) 

    FROM tab 

    WHERE NOT ISNULL
    (birthday)

    GROUP BY age 
    Die Frage ist nur, ob ich das auch grad schon nach Altersgruppen sortiert zurück geben kann.

    Also:
    15-20 : 12 Stück
    20-25 : 234 Stück
    etc pp
    Zuletzt geändert von prego; 18.07.2006, 11:37.

    Kommentar


    • #3
      Original geschrieben von prego
      Die Frage ist nur, ob ich das auch grad schon nach Altersgruppen sortiert zurück geben kann.
      Mit CASE oder IF sollte es möglich sein, direkt den Zähler für eine bestimmte Altersgruppe (pseudo-Spalte) zu erhöhen.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Hmm,

        aber von der Performance her sollte es ja keinen Unterschied machen, ob ich das Ergebnis nachher durch ne If-elseif-else Konstruktion jage oder das ganze in der Query mache, oder?

        Mir stellt sich nur immernoch die Frage ob die Sache mit dem unix_timestamp() irgendwie besser geht. Hatte es mal mit extract() versucht, aber nichts richtiges hinbekommen.

        Kommentar


        • #5
          Na ja, ich würde nicht den Umweg über den Unix Timestamp gehen, sondern eher TO_DAYS verwenden.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Also so:
            PHP-Code:
            SELECT 
            round
            ( (to_days(now()) - to_days(birthday))/365 ) AS age
            count(round( (to_days(now()) - to_days(birthday))/365)) AS count

            FROM tab

            WHERE NOT ISNULL
            (birthday)

            GROUP BY age 
            Dabei sind auch irgendwie mehr Ergebnisse. Manche Spaßvögel haben als Datum 1.1.1930 eingetragen, die waren vorher nicht da...

            Kommentar

            Lädt...
            X