Einfacheres Query

Schumiel

Erfahrenes Mitglied
Hallo,

und zwar habe ich folgendes Query:
SELECT count( * ) , DATE_FORMAT( datum, '%d' ) AS dat
FROM zahl
GROUP BY dat
HAVING dat = '03'
Die Tabelle besteht nur aus einer Spalte mit datetime() !
Ich möchte die Anzahl der Einträge von Tag 3 im Monat.

Kann man die Abfrage anders schreiben, weil GROUP BY ist mit der Auslastung relativ hoch.
 
HAVING ist immer langsam, weil zuerst gruppiert wird und dann erst gefitert

Ich nehm mal an, du hast MySQL.

Dann sollte so was gehen:
SQL:
SELECT COUNT(*)
FROM zahl
WHERE DAY(datum) = 3

Nachtrag:
Wenn du nur die Tage vom aktuellen Monat haben willst:
SQL:
SELECT COUNT(*)
FROM zahl
WHERE DAY(datum) = 3
	AND YEAR_MONTH(datum) = YEAR_MONTH(CURDATE())
Es lässt sich also beliebig erweitern
 
Zuletzt bearbeitet von einem Moderator:
Nächstes mal bitte die Fehlermeldung mitgeben. Geht nicht kann vieles bedeuten.

Habe mich beim Schreiben aus dem Kopf geirrt. ist nicht YEAR_MONTH sondern
SQL:
EXTRACT(YEAR_MONTH FROM datum) = EXTRACT(YEAR_MONTH FROM CURDATE())
 
Zuletzt bearbeitet von einem Moderator:
Zurück