Codeigniter ActiveRecord,按类别计算记录

时间:2013-07-16 06:56:39

标签: php mysql codeigniter activerecord

也许我现在无法思考。但是我想要弄清楚的是如何在数据库中返回一组结果,即每个类别的行数。无需基于每个类别进行查询。

本案例中的类别是州。我有90,000行数据,其中50种不同的状态将数据分开。有没有办法创建与每个州相关的计数?

我想说group_by或其他什么,但我老实说现在不能想到它。想法?

member | comment | state | dataset
----------------------------------
000    |something| CA    | an_object_of_data
000    |something| CA    | an_object_of_data
000    |something| CA    | an_object_of_data
000    |something| NY    | an_object_of_data
000    |something| NY    | an_object_of_data
000    |something| CA    | an_object_of_data
000    |something| CT    | an_object_of_data
000    |something| CA    | an_object_of_data

以上是db表中的一个示例。想象一下类似于90k行和更多state的东西。

如果我可以通过对结果或某事进行分组来获得计数,例如:“CA = 4”,“CT = 1”,“NY = 2”

2 个答案:

答案 0 :(得分:10)

select state,  count(state) from states group by state order by state ASC;

我想这可能会以最简单的方式发挥作用!

CI风格:

$this->db->select("state, count(state)");
$this->db->from("states");
$this->db->group_by("state");
$this->db->order_by("state", "ASC");
$this->db->get();

答案 1 :(得分:3)

代码是

$this->db->select('count(states.state) as count,state',false)
         ->from(states)
         ->group_by('states.state')
         ->get()
         ->result();