Как считать записи, группируя их в cfWheels?
У меня есть случай, когда мне нужно посчитать количество записей, сгруппированных по году публикации. Я просмотрел документацию и сеть в целом, но не могу найти, что использовать.
например
- 2013 = опубликовано 100 книг
- 2012 = 95 книг
- так далее..
Используя Oracle SQL, это делается с помощью:
select date_published, count(*)
from publications
group by date_published
order by date_published desc
Мне просто интересно, как перевести это на CFWheels.
2 ответа
Решение
Попробуй это:
publications=model("publication").findAll(
select="date_published, COUNT(date_published) AS publishCount"
, group="date_published"
, order="date_published DESC" );
NB, COUNT()
является чувствительной к регистру командой в колесах.
PS, или вы можете делать то, что говорит Мэтт - вы можете даже прикрепить его к модели, чтобы вы могли делать публикации. GetPubCountByYear() и т. Д.
Это скорее комментарий, но поскольку мне нужно форматирование, я публикую его как ответ. Разве вы не можете написать запрос, как обычный запрос в ColdFusion?
<cfquery name="getCounts" datasource="myDSN">
select date_published, count(*)
from publications
group by date_published
order by date_published desc
</cfquery>