Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 计算并显示特定列结果的数量_Mysql_Codeigniter - Fatal编程技术网

Mysql 计算并显示特定列结果的数量

Mysql 计算并显示特定列结果的数量,mysql,codeigniter,Mysql,Codeigniter,我有下表 |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| 我希望能够计算出每个城市有多少个工作岗位,然后按描述顺序返回工作岗位最多的十个城市。像下面这样 纽约(3) 拉斯维加斯(2) 芝加哥(1) 我如何做到这一点 我的代码如下所示

我有下表

|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|
我希望能够计算出每个城市有多少个工作岗位,然后按描述顺序返回工作岗位最多的十个城市。像下面这样

  • 纽约(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;
我从这条线索中得到了灵感:


但是似乎做得不对。

为什么不使用
$this->db->query()

给你:-

$query = $this->db->query('SELECT city, COUNT(city) AS jobcount FROM `jobs` GROUP BY city ORDER BY jobcount DESC');

if ($query->num_rows() > 0)
    foreach ($query->result() as $row) 
        $data[] = array(
            'total' => $row->jobcount,
            'city'  => $row->city
        );

return $data;
别忘了用您的表名交换
“作业”
,或者添加一个限制(mysql/TOP用于mssql)?
$query = $this->db->query('SELECT city, COUNT(city) AS jobcount FROM `jobs` GROUP BY city ORDER BY jobcount DESC');

if ($query->num_rows() > 0)
    foreach ($query->result() as $row) 
        $data[] = array(
            'total' => $row->jobcount,
            'city'  => $row->city
        );

return $data;