也许我现在无法思考。但是我想要弄清楚的是如何在数据库中返回一组结果,即每个类别的行数。无需基于每个类别进行查询。
本案例中的类别是州。我有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”
答案 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();