count(*)统计的是结果集的总条数,count(字段名)统计的是该字段值不为null的总条数
Group By:从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理
总结:count(*)先拿到一个计算各个字段值总条数的结果集,然后group by根据某个字段来分组,比如上面的例子,根据国家来分组,那么就是计算各个国家出现的次数。
有表如下table3: 需要查询country中各个国家出现的次数SQL语句: SELECT country as 国家,COUNT(*) as 次数 FROM table3 GROUP BY country结果如下: 知识点:count(*)统计的是结果集的总条数,count(字段名)统计的是该字段值不为null的总条数Group By:...
sum( w.star_level = 0) noStars,
sum( w.star_level = 1) oneStars,
sum( w.star_level = 2) twoStars,
sum( w.star_level = 3) threeStars,
sum( w.star_level = 4) fourStart,
select f_find('Ap@2233ll@@l@@','@') from dual 返回结果为5,代表‘@’在该字符串
中
出现
5次。
select f_find('Ap@223SWEQQQ3ll@@l@@','Q') from dual---返回3,代表Q在字符串
中
出现
了3次,
select f_find('我是
中
国人,你是哪国人','国') from dual---返回2,代表国
出现
了2次
直接上案例
需求:PayLog缴费表有个缴费方式的字段Method(1-营业厅、2-手机APP、3-微信小程序、4-微信公众号、5-支付宝),需要统计这缴费方式分别有
几次
2、my
sql
写法:
SELECT
SUM(Method = 1) AS Business_Hall,
SUM(Method = 2) AS Business_Hall,
SUM(Method = 3) AS WeChat_Applet,
SUM(Method = 4) AS WeChat_Official_Accou
查询
按cat_type分类
出现
的
次数
。可用如下语句:
select cat_type,count(*) as count from cat group by cat_type;
查询
结果如下
项目
中
有个需求,需要以某一
列
的
值
为基准,统计
出现
不同
值
的
次数
,具体点例子如下
需要查找courseId等于某一个
值
时候,user_number的不同
值
的个数。使用的
SQL
语句如下:
select count(*) from (select distinct user_number from z_user_mark where mark_course_id = '1' and status >= '2') aa
select count( distinct user_number) from
可以使用以下
SQL
语句
查询
同一
张表不同分组不同
值
:
SELECT 分组
列
, COUNT(DISTINCT 不同
值
列
) FROM 表名 GROUP BY 分组
列
;
其
中
,分组
列
是指需要分组的
列
,不同
值
列
是指需要统计不同
值
的
列
。使用 COUNT(DISTINCT 不同
值
列
) 可以统计不同
值
的数量。