我正在处理一个项目,在这个项目中我想要获取列中的值的计数。我将用一个例子来解释。我有一个名为name的表列。其中它的值是A、B、C、D、A、D、B、A、C。现在我希望输出为
Count: A-3,B-2,C-2,D-2. 我尝试过使用group by和distinct。但这两个都不能给我想要的。这一切都得到了该项目的总计数。在下面给出的代码中是我尝试过的查询。在那里,我想要particulars_id的计数,并且$public_page_id对于我正在获取的所有particulars_id都是通用的。表中将有多个public_page_id,每个表下都有一些particulars_id。
$output = '';
$this->db->select('COUNT(service_appointment_details.particulars_id)
as count,particulars.particulars_name');
$this->db->from('particulars');
$this->db->group_by('particulars.particulars_id');
$this->db->where('particulars.public_page_id',$public_page_id);
$this->db-
>join('service_appointment_details','particulars.public_page_id =
service_appointment_details.public_page_id','right');
$this->db->where($where_date);
$query = $this->db->get();预期结果
预期结果为(基于上面的示例)
Count: A-3,B-2,C-2,D-2.实际结果
但我现在得到的是
Count: A-9,B-9,C-9,D-9.我需要获取给定public_page_id下每个particulars_id的计数
发布于 2019-07-24 17:05:04
您应该使用count(*)
$this->db->select('COUNT(*) as count,particulars.particulars_name');
........发布于 2019-07-24 17:13:48
正如@scaisEdge指出的那样,您需要使用count(*)而不是count(service_appointment_details.particulars_id)。通过使用count(service_appointment_details.particulars_id),您基本上计算了select中的行数,而这并不是您想要的。
最后的代码片段是:
$output = '';
$this->db->select('COUNT(*) as count, particulars.particulars_name');
$this->db->from('particulars');
$this->db->group_by('particulars.particulars_name');
$this->db->where('particulars.public_page_id',$public_page_id);
$this->db->join('service_appointment_details','particulars.public_page_id = service_appointment_details.public_page_id','right');
$this->db->where($where_date);
$query = $this->db->get();每当您想要计算列值的出现次数时,您应该这样做
SELECT column_to_count, count(*) FROM table GROUP BY column_to_counthttps://stackoverflow.com/questions/57178984
复制相似问题