Как посчитать записи, сгруппировав их в cfWheels?

У меня есть случай, когда мне нужно подсчитать количество записей, сгруппированных по году публикации. Я просмотрел документацию и сеть в целом, но не могу найти, что использовать.

e.g.

  • 2013 = 100 опубликованных книг
  • 2012 = 95 книг
  • и т.д..

Используя Oracle SQL, это делается с помощью:

select date_published, count(*) 
from   publications 
group by date_published 
order by date_published desc

Мне просто интересно, как перевести это на CFWheels.


person mrjayviper    schedule 05.11.2013    source источник


Ответы (2)


Попробуй это:

publications=model("publication").findAll( 
     select="date_published, COUNT(date_published) AS publishCount"
    , group="date_published"
    , order="date_published DESC" );

NB, COUNT() — это чувствительная к регистру команда в колесах.

PS, или вы можете сделать то, что говорит Мэтт - вы даже можете прикрепить его к модели, чтобы вы могли делать публикации.getPubCountByYear() и т. д.

person Neokoenig    schedule 05.11.2013

Это скорее комментарий, но поскольку мне нужно форматирование, я публикую его как ответ. Разве вы не можете написать запрос так же, как обычный запрос в ColdFusion?

<cfquery name="getCounts" datasource="myDSN">
select date_published, count(*) 
from publications 
group by date_published 
order by date_published desc
</cfquery>
person Matt Busche    schedule 05.11.2013
comment
Могу, конечно, но я просто пытаюсь изучить возможности фреймворка :) - person mrjayviper; 05.11.2013