Я предпочитаю оптимизировать выбор группы на один год следующим образом:
SELECT COUNT(*)
FROM stats
WHERE record_date >= :year
AND record_date < :year + INTERVAL 1 YEAR;
Таким образом, вы можете просто связать год за один раз, например, '2009'
, с именованным параметром и не нужно беспокоиться о добавлении '-01-01'
или передаче '2010'
отдельно.
Кроме того, поскольку предположительно мы просто считаем строки, а id
никогда не бывает NULL
, я предпочитаю COUNT(*)
COUNT(id)
.