怎么对数据库查询进行group by 和sum() 操作

用AR方式实现:
1.直接用findall
$result = Test::model()->findAll(array('select'=>'name, sum(record) as summary','group'=>'category'));


2.在model relation里声明一个聚合数据
public function relations() {
      'childrenSum'=>array(self::STAT,'Test','pid','select'=>'sum(pid)'),

}


-------------------------------------------

iya, saya juga berfikir demikian, :P

mungkin bisa pula melalui findAllBySql() http://www.yiiframework.com/doc/api/1.1/CActiveRecord#findAllBySql-detail

<?php
    $sql="
        SELECT
                A.id, 
                sum(B.price) as Total, 
                count(B.B_id) as jumlah, 
                max(B.price) as maks, 
                min(B.price) as Min
        FROM 
                A INNER JOIN B ON A.ID=B.A_ID
        ";

    $data = A::model()->findAllBySql($sql);
    foreach ($data as $dataItem)
    {
        echo $dataItem['id'];
        echo "Total = ".$dataItem['Total'];
        echo "Count = ".$dataItem['jumlah'];
        echo "Min = ".$dataItem['Min'];
        echo "Max = ".$dataItem['maks'];
    }
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值