[mysql] query probleempje

Pagina: 1
Acties:

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Ik wil voor een soort stats pagina zorgen dat ik kan zien hoeveel mensen zich in een maand hebben aangemeld voor het member systeem.

Nu wil ik dus het aantal members van die maand groeperen per maand.
De signup datum van de members staat in creation_date en als formaat: YYYYMMDD
Nu probeer ik het zo:
SELECT SUBSTRING(creation_date,4,2) AS maand, COUNT(*D AS count FROM cs_details GROUP BY maand ORDER BY maand ASC

Dit werkt in princiepe alleen hij geeft maar 1 maand weer :?
Terwijl het member systeem al sinds maand 10 online is geeft ie dus alle aanmeldingen (het totaal aantal members) bij maand 11 weer.
* chuxiej hoopt dat ie een beetje duidelijk is hehe en dat er nog iemand online is.

www.dannyhiemstra.nl


  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 14:48
Zoiets toch gewoon?
$query = "SELECT COUNT(creation_date) FROM cs_details WHERE creation_date < " . date(YMD);

even kijken naar de vorm van date().. die heb ik ongetwijfeld fout gedaan.. Misschien ook handig gmdate() te gebruiken...

Succes!

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
nee ik wil gewoon dat hij het netjes in een array zet
Zo dus:
----------------------
|Maand |Aanmeldingen |
----------------------
| 09 | 31 |
| 10 | 59 |
| 11 | 89 |

www.dannyhiemstra.nl


  • paulh
  • Registratie: Juli 1999
  • Laatst online: 22-06 15:30
oops fout bedenk ik me nu.

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
Probeer dit eens?
code:
1
2
3
4
5
SELECT
  DATE_FORMAT(creation_date,"%m-%Y") as Maand,
  count(*) as Aanmeldingen
FROM cs_details
GROUP BY Maand

Neemt dus het jaar erbij, aangezien je anders over een jaartje cijfers van alle aanmeldingen in een bepaalde maand hebt (van meerdere jaren). Wil je echt puur per maand weten, de %Y eruit slopen :)

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Er is een betere manier (jawel..)

Gebruik LIKE en de joker symbool om precies de maand op te geven.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
Dusty, hoe zorg je er dan voor dat je alleen op de maand grouped? (ervan uitgaande dat dus ook de dag gelogged wordt in een string als '2001-11-16')

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op vrijdag 16 november 2001 16:51 schreef goalgetter het volgende:
Dusty, hoe zorg je er dan voor dat je alleen op de maand grouped? (ervan uitgaande dat dus ook de dag gelogged wordt in een string als '2001-11-16')
Correct.. vraag fout gelezen.. :)

Grouperen zal gedaan moeten worden met MONTH()...

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
En als je op MONTH() grouped krijg je dus het "probleem" met de jaren als het meer dan 1 jaar loopt :)

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op vrijdag 16 november 2001 17:03 schreef goalgetter het volgende:
En als je op MONTH() grouped krijg je dus het "probleem" met de jaren als het meer dan 1 jaar loopt :)
Dan pak je het jaartje er ook bij he ;)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
En dan voor de uiteindelijke oplossing:
code:
1
2
3
4
5
6
SELECT
  SUBSTRING(creation_date,1,7) as Maand,
  COUNT(*) as Aanmeldingen
FROM cs_details
GROUP BY YEAR(date),MONTH(date)
ORDER BY Maand ASC

Niet dat de eerder gegeven oplossing niet werkt, maar die geeft wel een iets hogere load op je database.
Pagina: 1