首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从单个列中获取指定值的计数

如何从单个列中获取指定值的计数
EN

Stack Overflow用户
提问于 2019-07-24 16:56:05
回答 2查看 47关注 0票数 0

我正在处理一个项目,在这个项目中我想要获取列中的值的计数。我将用一个例子来解释。我有一个名为name的表列。其中它的值是A、B、C、D、A、D、B、A、C。现在我希望输出为

代码语言:javascript
复制
Count: A-3,B-2,C-2,D-2. 

我尝试过使用group by和distinct。但这两个都不能给我想要的。这一切都得到了该项目的总计数。在下面给出的代码中是我尝试过的查询。在那里,我想要particulars_id的计数,并且$public_page_id对于我正在获取的所有particulars_id都是通用的。表中将有多个public_page_id,每个表下都有一些particulars_id

代码语言:javascript
复制
    $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();

预期结果

预期结果为(基于上面的示例)

代码语言:javascript
复制
Count: A-3,B-2,C-2,D-2.

实际结果

但我现在得到的是

代码语言:javascript
复制
Count: A-9,B-9,C-9,D-9.

我需要获取给定public_page_id下每个particulars_id的计数

EN

回答 2

Stack Overflow用户

发布于 2019-07-24 17:05:04

您应该使用count(*)

代码语言:javascript
复制
 $this->db->select('COUNT(*) as count,particulars.particulars_name');
 ........
票数 0
EN

Stack Overflow用户

发布于 2019-07-24 17:13:48

正如@scaisEdge指出的那样,您需要使用count(*)而不是count(service_appointment_details.particulars_id)。通过使用count(service_appointment_details.particulars_id),您基本上计算了select中的行数,而这并不是您想要的。

最后的代码片段是:

代码语言:javascript
复制
$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();

每当您想要计算列值的出现次数时,您应该这样做

代码语言:javascript
复制
SELECT column_to_count, count(*) FROM table GROUP BY column_to_count
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57178984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档