1

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

在这种情况下,类别是状态。我有 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”

4

2 回答 2

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();
于 2013-07-16T06:59:32.987 回答
3

代码是

$this->db->select('count(states.state) as count,state',false)
         ->from(states)
         ->group_by('states.state')
         ->get()
         ->result();
于 2013-07-16T07:55:14.487 回答