Magento可能会做一些报表统计,这时候可能会用到数据的分组操作。下边介绍两种集合的分组操作方式:
测试方法:
public function getddd(){
$collection = Mage::getResourceModel('customer/customer_collection');
$collection1= $collection->groupByCustomerId();
$result = array();
foreach ($collection1 as $value) {
$result[] = $value->toArray();
}
return $result;
}
方式1:
public function groupByCustomerId() {
$this->getSelect()
->from(
array('order' => $this->getTable('sales/order')),
array('order_count' => new Zend_Db_Expr('COUNT(order.entity_id)'))
)
->where('order.customer_id = e.entity_id')
->group('order.customer_id')
->order('order_count '.'desc');
return $this;
}
方式2:
public function groupByCustomerId_1()
{
$this->getSelect()
->joinLeft(
array('order' => $this->getTable('sales/order')),//表名称
'e.entity_id=order.customer_id',//表连接条件
array('order_num'=>'count(order.entity_id)')//选择出的字段
)
->group('order.customer_id')
->order('order_num '.'desc');
return $this;
}