mysql如何查询数据出现的次数

本文介绍了如何在MySQL中使用SELECT语句配合GROUPBY和COUNT函数来统计数据出现的次数,包括COUNT(*)的基本用法以及如何按指定条件进行分组计数。同时提到了COUNT(*)在无WHERE子句时的优化情况。

在mysql中,可以利用select语句配合group by和count查询数据出现的次数,count能够返回检索数据的数目,语法为“select 列名,count(*) as count from 表名 group by 列名”。

count函数是用来统计表中或数组中记录的一个函数,count(*) 它返回检索行的数目, 不论其是否包含 NULL值。

SELECT 从一个表中检索,而不检索其它的列,并且没有 WHERE子句时, COUNT(*)被优化到最快的返回速度。

查询按qc_code分组出现的次数,可用如下语句:

1

select qc_code,count(*) as count from xxxx group by qc_code;

查询按qc_code分组之后大于多少次数,可用如下语句:

1

select qc_code,count(*) as count from xxx group by qc_code having count > 1;

MySQL 中,统计某个数据出现的次数有多种方法,以下为你详细介绍: - **统计某列中不同值的出现次数**:可以利用`SELECT`语句配合`GROUP BY`和`COUNT`来查询数据出现的次数,`COUNT`能够返回检索数据的数目。语法为`SELECT 列名, COUNT(*) AS count FROM 表名 GROUP BY 列名`。例如,若要统计`students`表中`class`列里每个班级出现的次数,SQL 语句如下: ```sql SELECT class, COUNT(*) AS count FROM students GROUP BY class; ``` - **统计字符串中某个字符串出现的次数**: - **单个字符出现的次数**:通过将原字符串中要统计的字符替换为空,再用原字符串长度减去替换后字符串的长度,所得差值就是该字符出现的次数。例如,要统计`how do you do`字符串中`d`出现的次数,SQL 语句如下: ```sql SELECT LENGTH('how do you do') - LENGTH( REPLACE ( 'how do you do', 'd', '' )); ``` - **多个字符出现的次数**:用原字符串长度减去替换指定字符串为空后的字符串长度,再除以指定字符串的长度,即可得到指定字符串出现的次数。若相除结果有很多小数位,可使用`TRUNCATE`函数去除小数部分,只保留整数。例如,要统计`how do you do`字符串中`do`出现的次数,SQL 语句如下: ```sql SELECT TRUNCATE (( LENGTH( 'how do you do' ) - LENGTH( REPLACE ( 'how do you do', 'do', '' ))) / LENGTH( 'do' ), 0); ``` - **统计在某个字段中指定一个值出现的总次数**:使用`SUM`和`CASE WHEN`语句来实现。例如,要统计`mrs`表中`字段名`为`1`和`0`的记录各自的数量,SQL 语句如下: ```sql SELECT SUM(CASE WHEN mrs.字段名='1' THEN 1 ELSE 0 END) accomplish, SUM(CASE WHEN mrs.字段名='0' THEN 1 ELSE 0 END) unfinished FROM 表名 mrs; ``` - **统计一列中不同值出现次数(特定场景)**:先对作业单位进行分组(`GROUP BY`),再对作业类型每一种进行查询,并使用`SUM`统计数量,使用`IF`充当过滤条件。例如,统计`t_sep_zyxk_jc`表中不同`OperationTypeName`在`Applicant`分组下的出现次数,SQL 语句如下: ```sql SELECT Applicant, SUM(OperationTypeName='动火作业') AS A1, SUM(OperationTypeName='动土作业') AS A2, SUM(OperationTypeName='临时用电') AS A3, SUM(OperationTypeName='高处作业') AS A4, SUM(OperationTypeName='11') AS A5, SUM(OperationTypeName='dd') AS A6, SUM(OperationTypeName='ee') AS A7, SUM(OperationTypeName='ff') AS A8, SUM(OperationTypeName='yy') AS A9 FROM t_sep_zyxk_jc WHERE DeleteFlg=0 GROUP BY Applicant; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值