我有下表
|id|city|job|
|12|New York|Truck driver|
|13|Chicago|Postman|
|14|New York|Postman|
|15|Las Vegas|Dealer|
|16|Las Vegas|Dealer|
|17|New York|Post Office|
我希望能够计算每个城市有多少工作,然后以 DESC 顺序返回工作最多的十个城市。像下面这样
- 纽约 (3)
- 拉斯维加斯 (2)
- 芝加哥 (1)
我该如何做到这一点?
我的代码看起来像这样
$this->db->select('city');
$this->db->select_sum('city', 'total');
$this->db->group_by('city');
$this->db->order_by('total', 'desc');
$query = $this->db->get('job', 10);
foreach ($query->result() as $row) {
$data[] = array(
'total' => $row->total,
'city' => $row->city
);
}
return $data;
我从这个线程中获得灵感:COUNT / GROUP BY with active record?
但似乎并不正确。