2009-06-02 5 views
2

Es gibt 2 Spalten, die ich Daten will. Grundsätzlich möchte ich neue Anmeldungen pro Tag sehen. Gehen Sie einfach auf mich, mein erster Tag mit MySQL (oder jede DB für diese Angelegenheit)Mysql Anzahl der Spalten der Benutzer und Gruppe nach Änderungsdatum

Bisher habe ich diese

mysql> select created, count(id) from user group by created; 
+---------------------+-----------+ 
| created    | count(id) | 
+---------------------+-----------+ 
| 2009-05-27 00:58:56 |   1 | 
| 2009-05-27 01:27:30 |   1 | 
| 2009-05-27 02:35:37 |   1 | 
| 2009-05-27 02:58:56 |   1 | 
| 2009-05-27 03:36:03 |   1 | 
| 2009-05-27 03:38:03 |   1 | 
| 2009-05-27 03:48:16 |   1 | 
| 2009-05-27 03:51:37 |   1 | 

Der Ausgang Ich mag würde, ist

+---------------------+----------------------+ 
| created    | user     | 
+---------------------+----------------------+ 
| 2009-05-27   | 10     | 
| 2009-05-28   | 13     | 
| 2009-05-29   | 19     | 

Jede Hilfe wird geschätzt!

Dank

Antwort

7
select DATE(created), count(id) from user group by DATE(created); 
+0

+1 für die schnelle und richtige Antwort ermöglichen. Sie können auch Spaltenaliasnamen hinzufügen, um den Zugriff auf das Ergebnis der Abfrage in der gewünschten Sprache zu erleichtern. – PatrikAkerstrand

1
SELECT DATE(created) as date, count(1) as nrRegistered 
FROM user 
GROUP BY date 

Hinweis: Mit dem 1 anstelle von id Zählen wir eine Suche in der Tabelle zu vermeiden und ein Index-only Abfrage

+1

Angenommen, das erstellte Feld ist indiziert. –

+1

Ja ist es. Es geht auch davon aus, dass MySQL nicht schlau genug ist, die ID (die höchstwahrscheinlich ein Primärschlüssel ist) zu verwenden, die an den Index angehängt wird, wenn man count (id) tut. Also muss ich zugeben, dass es eine ziemlich lockere Note ist. Aber ich habe nicht gesagt, dass meine Abfrage einen Nur-Index-Join erzwingt, nur dass dies möglich ist. Ich würde vorschlagen, ein EXPLAIN [...] für die Abfrage zu verwenden, um sicherzugehen. – PatrikAkerstrand

+0

Erläuterung: Der Primärschlüssel wird angehängt, wenn die Speicher-Engine InnoDB und nicht MyISAM ist. – PatrikAkerstrand