Grüße,
ich habe eine kleine Datenbank, in der ich das Geburtsjahr von Nutzern abgelegt habe.
Nun möchte ich gerne wissen wieviele Leute ein gewisses Alter haben. Zusätzlich soll noch das Geburtsjahr mitgeliefert werden.
Die Ausgabe soll also in etwa diese Form haben:
Alter|Anzahl |Geburtsjahr
____|______|__________
09 | 10 | 1998
10 | 2 | 1998
Mein Problem an der Stelle ist, ich weiß nicht wie ich das SQL-Statement hinbekommen soll, so dass das richtige Jahr erscheint.
In meiner Variante verschwinden zwischendurch immer Jahreswerte.
Hier mal mein bisheriger Versuch inklusive Ergebnis:
Alles anzeigen
+------+-----------+------------+---------+
| Age | Year_born | bday_date | Members |
+------+-----------+------------+---------+
| 0 | 2008 | 2008-01-22 | 1 |
| 18 | 1990 | 1990-01-01 | 10 |
| 19 | 1989 | 1989-01-01 | 13 |
| 20 | 1988 | 1988-02-18 | 12 |
| 21 | 1986 | 1986-11-08 | 10 |
| 22 | 1986 | 1986-03-19 | 5 |
| 23 | 1985 | 1985-06-07 | 1 |
| 24 | 1984 | 1984-04-04 | 2 |
| 25 | 1983 | 1983-04-08 | 6 |
| 26 | 1981 | 1981-12-11 | 5 |
| 27 | 1980 | 1980-11-16 | 11 |
| 28 | 1980 | 1980-01-01 | 3 |
| 29 | 1978 | 1978-11-11 | 280 |
| 30 | 1977 | 1977-12-16 | 147 |
| 31 | 1977 | 1977-03-04 | 4 |
| 32 | 1975 | 1975-11-09 | 4 |
| 35 | 1972 | 1972-12-09 | 2 |
| 36 | 1972 | 1972-07-11 | 1 |
| 37 | 1971 | 1971-07-10 | 1 |
| 38 | 1970 | 1970-07-21 | 3 |
| 39 | 1969 | 1969-01-14 | 1 |
| 44 | 1963 | 1963-11-07 | 1 |
| 45 | 1963 | 1963-02-05 | 1 |
| 46 | 1962 | 1962-04-23 | 1 |
| 48 | 1960 | 1960-05-02 | 1 |
| 58 | 1949 | 1949-11-11 | 1 |
| 59 | 1949 | 1949-07-04 | 1 |
+------+-----------+------------+---------+
Es fehlt z.B. das Jahr 1979 obwohl es Nutzer mit diesem Geburtsjahr gibt.
Merci für die Hilfe
ich habe eine kleine Datenbank, in der ich das Geburtsjahr von Nutzern abgelegt habe.
Nun möchte ich gerne wissen wieviele Leute ein gewisses Alter haben. Zusätzlich soll noch das Geburtsjahr mitgeliefert werden.
Die Ausgabe soll also in etwa diese Form haben:
Alter|Anzahl |Geburtsjahr
____|______|__________
09 | 10 | 1998
10 | 2 | 1998
Mein Problem an der Stelle ist, ich weiß nicht wie ich das SQL-Statement hinbekommen soll, so dass das richtige Jahr erscheint.
In meiner Variante verschwinden zwischendurch immer Jahreswerte.
Hier mal mein bisheriger Versuch inklusive Ergebnis:
Quellcode
- select
- floor(
- PERIOD_DIFF(
- date_format(
- now() - INTERVAL datediff(now() + INTERVAL 1 DAY,date_format(now(),'%Y-%m-01')) DAY,
- '%Y%m'
- ),
- date_format(
- p.bday_date - INTERVAL datediff(now() + INTERVAL 1 DAY,date_format(now(),'%Y-%m-01')) DAY,
- '%Y%m'
- )
- )/12
- ) Age,
- YEAR(bday_date) AS Year_born,
- bday_date,
- count(p.id) Members
- from
- tabelle p
- where
- bday_date > '0000-00-00'
- group by
- Age;
+------+-----------+------------+---------+
| Age | Year_born | bday_date | Members |
+------+-----------+------------+---------+
| 0 | 2008 | 2008-01-22 | 1 |
| 18 | 1990 | 1990-01-01 | 10 |
| 19 | 1989 | 1989-01-01 | 13 |
| 20 | 1988 | 1988-02-18 | 12 |
| 21 | 1986 | 1986-11-08 | 10 |
| 22 | 1986 | 1986-03-19 | 5 |
| 23 | 1985 | 1985-06-07 | 1 |
| 24 | 1984 | 1984-04-04 | 2 |
| 25 | 1983 | 1983-04-08 | 6 |
| 26 | 1981 | 1981-12-11 | 5 |
| 27 | 1980 | 1980-11-16 | 11 |
| 28 | 1980 | 1980-01-01 | 3 |
| 29 | 1978 | 1978-11-11 | 280 |
| 30 | 1977 | 1977-12-16 | 147 |
| 31 | 1977 | 1977-03-04 | 4 |
| 32 | 1975 | 1975-11-09 | 4 |
| 35 | 1972 | 1972-12-09 | 2 |
| 36 | 1972 | 1972-07-11 | 1 |
| 37 | 1971 | 1971-07-10 | 1 |
| 38 | 1970 | 1970-07-21 | 3 |
| 39 | 1969 | 1969-01-14 | 1 |
| 44 | 1963 | 1963-11-07 | 1 |
| 45 | 1963 | 1963-02-05 | 1 |
| 46 | 1962 | 1962-04-23 | 1 |
| 48 | 1960 | 1960-05-02 | 1 |
| 58 | 1949 | 1949-11-11 | 1 |
| 59 | 1949 | 1949-07-04 | 1 |
+------+-----------+------------+---------+
Es fehlt z.B. das Jahr 1979 obwohl es Nutzer mit diesem Geburtsjahr gibt.
Merci für die Hilfe

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mordok ()