Как считать записи, группируя их в 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>
Другие вопросы по тегам