[2013/03/05]修正
—
アイテムに対するクリック数の取得など、集計をしたい時
なおかつ、IPでユニークにしたい時などに使えます。
ポイントは、なんと言ってもバーチャルフィールドです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $days = 7; $end = date('Y-m-d H:i:s', mktime(0, 0, 0, date('m') , date('d') - 1, date('Y'))); $start = date('Y-m-d H:i:s', mktime(0, 0, 0, date('m') , date('d') - (1 + $days), date('Y'))); $this->Click->virtualFields = array('dstsum' => 'count(distinct Click.ip)'); $data = $this->Click->find('all', array( 'conditions' => array( 'Click.created >=' => $start, 'Click.created <' => $stop, ), 'fields' => array('Item.id', 'dstsum'), 'recursive' => 0, 'limit' => 5, 'order' => array('dstsum' => 'desc'), 'group' => 'Click.Item_id', )); |