首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql 分组统计 case when 及 if 语句使用

需求: 同时:中文名重复了就是1部剧,不重复就是多部剧 需求分析: 这个需要分组、需要统计、需要判断、需要distinct。...分组:根据地区、类别、中文名称分类; 判断:根据类型进行判断同时要求和 因为中文名称重复就是1部,所以统计时候,要使用distinct去重。...表语句: DROP TABLE IF EXISTS `yj_item_plan`; CREATE TABLE `yj_item_plan` (   `id` bigint(20) NOT NULL AUTO_INCREMENT...(CASE when   t.play_classification = 10  then t.submit_num  else 0 end  ) as  '电视剧集数' , SUM(CASE when...:05:10' and '2021-08-29 09:05:10' group by t.play_name_zh ,t.producing_area ,t.play_classification; 结果

2.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

shell脚本中case条件语句介绍和使用案例

#前言:这篇我们接着写shell另外一个条件语句case,上篇讲解了if条件语句。...case条件语句我们常用于实现系统服务启动脚本等场景,case条件语句也相当于if条件语句多分支结构,多个选择,case看起来更规范和易读 #case条件语句语法格式 case "变量" in...read读取用户输入数据,然后使用case条件语句进行判断,根据用户输入值执行相关操作 #执行效果 [root@shell scripts]# sh num.sh please input a...read读取用户输入数据,然后使用case条件语句进行判断,根据用户输入值执行相关操作,给用户输入水果添加颜色 #扩展:输出菜单另外种方式 cat<<-EOF ================...、比较,应用比较广,case条件语句主要是写服务启动脚本,各有各优势。

5.7K31

快出来,收快递啦

“客户id”分组,对“运单号”统计数目得到单量(count),注意要用distinct对运单号去重。...image.png 在上一步查询结果基础上(作为子查询),再使用一次汇总分析,“单量区间”分组(group by),对客户id汇总得到客户数(count)。...,得到“最终结果”: image.png 《猴子 从零学会SQL》里教,把“最终结果”导出到Excel里,对数据进行可视化可以更方便观察数据。...image.png 【本题考点】 1.当遇到“每个”这类问题,要想到用分组汇总或者窗口函数  2.考查对子查询灵活使用,嵌套了两次子查询,也就是把上一步查询结果作为子查询 3.考查对常见函数了解:...count()、group by()、distinctcase when,以及它们组合使用 4.当遇到“区间”问题时候,要想到用多条件判断(case语句)解决 5.考察遇到业务问题,如何用逻辑树分析方法把复杂问题变成矿业解决子问题

67800

教育行业案例:如何分析​复购用户?

【面试题】 "课程订单表”里记录了某在线教育App用户购买课程信息(部分数据截图)。 请使用sql将购买记录表中信息,提取为下表(复购分析表)格式。并用一条sql语句写出。...【解题思路】 这是常见复购问题,也就是将用户购买时间分组,比较不同时间组用户复购数。其本质是使用里了群组分析方法,将数据某些特征进行分类,分成不同组进行分析。...每天分组(group by ),汇总购买用户数(计数函数count)。...语句选出时间间隔<=1个月数据,并计数就是此月复购用户数 count(distinct case when 时间间隔<=1 then 用户id else null...2.灵活使用case来统计when 函数与group by 进行自定义列联表统计。 3.遇到只有一个表,但是需要计数时间间隔问题,就要想到用自联结来求时间间隔。

1K10

SQL面试必刷题(1) Case When

Mysql数据库中CASE WHEN语句,是用于计算条件列表并返回多个可能结果表达式之一。...有一个学生表:students(id, name ,birthday, sex, grade),要求每个年级统计男生和女生数量各是多少,统计结果表头为:年级,男生数量,女生数量。...有一张表table2(语文成绩、数学成绩、英语成绩),请用一条sql语句以下显示条件得出结果: 显示条件:大于或等于80显示为优秀,大于或等于60表示及格,小于60分表示不及格。...有如下人口统计数据,要求按照国家和性别进行分组,得出结果如下: ? ?...与distinct结合,去重分组统计 # 统计每个类型数量 select count(distinct case when type='1' then id else null end )type1

1.5K40

图解面试题:人均付费如何分析?

按照各城市(也就是每个城市)分组 (group by),统计用户数(计数函数count,加上distinct去掉重复用户id)、总费用(求和函数sum) select 城市,count(distinct...(1)各城市(每个城市),也就是城市分组 (group by) select 城市from 各城市用户ARPU值group by 城市; (2)对用户ARPU值进行分类,用case when 语句选出...2.查找重复数据,可以在分组汇总后,使用having对分组结果指定条件,如果汇总数据值>=2就是重复数据。...3.对于分类,或者条件业务问题使用case来解决 【举一反三】 现在商家推出一款活动,如果用户将商品发到朋友圈,点赞数小于6奖励零食;,点赞数大于等于6奖励充电宝。...下面是记录该活动“活动表”。 找出哪些用户获得什么奖品。 【解题思路】 大白话为:根据用户(用户id)分组(group by),用case  when 语句选出点赞数区间,符合并计数。

92340

C++中使用switch..case语句易出错陷阱和规避方法

参考链接: C++ switch..case语句 C++作为C语言升级版,支持很多C语言不支持语法。...fun() {   int n = 6;   int i = 0;   for (i = 0; i < 3; i++)   {     n += i;   }   return n; }   不过,如果使用...++新语法支持,在switch..case分支case 1中,定义了整形变量n,并且把它赋值为1。...这段代码完全合法,编译通过(VS2012环境中),运行结果如下图所示,一切正常。   问题出现在当我们尝试初始化整形变量n时候。...整形变量n作用域是swtich..case结构被花括号括起来整个部分:虽然整形变量n定义在case 1标签下面,但它对于case 2和case default都是可见,可以把case 2和case

2K30

2-SQL语言中函数

: sum,avg可以处理数值型数据,max,min,count可以处理任何类型数据 以上几个分组函数都会自动忽略null值 可以和distinct搭配使用 # 分组函数 /* 分类:sum 求和,avg...分类: 子查询出现位置: SELECT 后面(仅支持标量子查询) FROM 后面(支持表子查询) WHERE或HAVING后面(标量子查询,列子查询,行子查询) EXISTS 后面(表子查询)结果行列数不同...,行子查询) EXISTS 后面(表子查询) 结果行列数不同: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列) 表子查询(结果集一般多行多列...:将多条查询语句结果合并成一个结果 语法: 查询语句 union 查询语句 ......应用场景:要查询结果来自多个表,且多个表没有直接连接关系,单查询信息一致 特点: 要求多条查询语句查询列数是一致 要求多条查询语句每一列类型和顺序最好是一致 UNION关键字会自动去重,如果不想去重可以使用

2.8K10

第35次文章:数据库简单查询

case函数 #2.case函数使用一:switch case 效果 /* java 中 switch(变量或表达式){ case 常量1:语句1;break;...DEFAULT:语句n;break; } mysql 中 case 要判断字段或表达式 when 常量1 then 要显示值1或语句1; when 常量2 then 要显示值2或语句2; ......ELSE{ 语句n; } mysql 中: CASE WHEN 条件1 THEN 要显示值1或语句1; WHEN 条件2 THEN 要显示值2或语句2; ........用法二结果: ? tips:对于两种case用法,全部都已经展示在了代码行中,各位同学自己查看即可哈! 三、分组函数 (1)基本功能 功能:用作统计使用,又称为聚合函数或统计函数或组函数。...count 可以处理任何类型 2、以上分组函数都忽略null值 3、可以和关键字distinct搭配使用,实现去重运算 4、count函数单独介绍 一般使用count(*)用作统计行数 5、和分组函数一同查询字段要求是

1.1K20

像Excel一样使用SQL进行数据分析

SQL不仅可以从数据库中读取数据,还能通过不同SQL函数语句直接返回所需要结果,从而大大提高了自己在客户端应用程序中计算效率。...ORDER BY price_new DESC LIMIT 9,1; 排名 数值相同排名相同且排名连续 SELECT prod_price, (SELECT COUNT(DISTINCT prod_price...:从字符串第 4 个字符位置开始取,只取 2 个字符 SELECT substring('example.com', 4, 2); 关键字截取字符串 取第一个分隔符之前所有字符,结果是www SELECT...Products.vend_id=Vendors.vend_id AND OrderItems.prod_id=Products.prod_id AND order_num=20007; 自联结 在一条SELECT语句中多次使用相同表...Excel中数据透视表功能 数据分组 group by 用于数据分组 having 用于分组后数据过滤 SELECT order_num,COUNT(*) as items FROM OrderItems

8010

像Excel一样使用SQL进行数据分析

SQL不仅可以从数据库中读取数据,还能通过不同SQL函数语句直接返回所需要结果,从而大大提高了自己在客户端应用程序中计算效率。...ORDER BY price_new DESC LIMIT 9,1; 排名 数值相同排名相同且排名连续 SELECT prod_price, (SELECT COUNT(DISTINCT prod_price...', 4, 2); 关键字截取字符串 取第一个分隔符之前所有字符,结果是www SELECT substring_index('www.google.com','...Products.vend_id=Vendors.vend_id AND OrderItems.prod_id=Products.prod_id AND order_num=20007; 自联结 在一条SELECT语句中多次使用相同表...Excel中数据透视表功能 数据分组 group by 用于数据分组 having 用于分组后数据过滤 SELECT order_num,COUNT(*) as items FROM OrderItems

1.4K20

SQL | 数据分析面试必备SQL语句+语法

读完本文,你能快速知道: (1)除了select 这种基本语句,我最应该马上掌握SQL语句和知识是什么? (2)面试中SQL题80%都在考察语法是什么? (3)这些语法应该怎么使用?...union过程中会去重并降低效率,union all 直接追加数据。union 前后是两段select 语句而非结果集。 2....使用count distinct进行去重统计会将reducer数量强制限定为1,而影响效率,因此适合改写为子查询。 想分性别进行统计,看看男女各多少?...—— case when 条件函数 -- 收入区间分组 select id, (case when CAST(salary as float)<50000 Then '0-5万' when CAST(salary...rank()排序相同时会重复,总数不会变 ,意思是会出现1、1、3这样排序结果; dense_rank() 排序相同时会重复,总数会减少,意思是会出现1、1、2这样排序结果

2.8K41

【MySQL 系列】MySQL 语句篇_DQL 语句

以下是关键字 DISTINCT 语法: SELECT DISTINCT columns_list FROM table_name # 去掉查询返回记录结果中重复记录 注意:SELECT 语句不加关键字...有时候,我们需要将结果集按照某个维度进行汇总。这在统计数据时候经常用到,例如以下场景: 班级求取平均成绩; 学生汇总某个人总分; 年或者月份统计销售额; 国家或者地区统计用户数量。...GROUP BY 子句分组字段或表达式至少一个,可以多个;③ 子句是可选,用来过滤分组数据,需要使用逻辑表达式作为条件,其中逻辑表达式中字段或表达式只能使用分组使用字段和聚合函数。...举例: 我们以 MySQL 官方示例数据库 Employees 数据库为例,使用 CASE 自定义 ORDER BY 子句对结果集进行排序。...2.5.2、使用 FIELD 函数实现自定义排序 对于上面实例中 CASE 语句,我们可以如下使用 FIELD() 代替。

12210

MySQL括号字符串计数

对于上面的数据行,结果为: 图片 解决方案: 1. 使用正则表达式 第一感觉这是使用正则表达式场景。...总想法是,首先对评论字符串以“]”为分隔符转多行,然后针对不同情况对每行求字符长度,之后每条评论ID分组求和,得到符合规则每条评论长度,最后评论长度分组进行二次聚合,得到每种长度个数。...8-11行中子查询,得出每条评论中成对中括号个数(l1列),0表示评论字符串中没有成对中括号,结果如下: 图片 7-12行中子查询,结果使用以“]”为分隔符转多行: 图片...之后每条评论ID分组求和,得到符合规则每条评论长度,结果如下: 图片 最外层查询评论长度分组进行二次聚合,得到每种长度个数。 3....在本例中,不使用正则表达式解决方案不但冗长,而且由于用到笛卡尔积由单行转多行,之后再聚合,性能比正则表达式差多。实际表中有55107行记录,方案1秒出结果,方案2需要执行50多秒。

1.3K20

走向面试之数据库基础:一、你必知必会SQL语句练习-Part 1

核心是这里PassedCounts(及格人数)计算,这里使用CASE WHEN *** THEN *** ELSE *** END语句,灵活地对Score进行了判断并赋值(1和0)进行计算。...这里需要注意一点就是,在select指定字段要么就要包含在Group By语句后面,作为分组依据;要么就要被包含在聚合函数中。...,可以将语句改为:having COUNT(distinct sc.C#)=2,便可得到以下结果: ?   ...,因此我们插入一条:{7,钱二,20,女},再执行上面的SQL语句可得以下结果: ?   ...要求输出课程号和选修人数,查询结果人数降序排列,查询结果人数降序排列,若人数相同,课程号升序排列 1 select sc.C#,COUNT(distinct S#) as 'StuCount' from

1.2K30

技术分享 | 使用 SQL 语句来简化 show engine innodb status 结果解读

本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。---熟悉 MySQL 同学,一定对如何实时监控InnoDB表内部计数器非常了解。...就一条命令:show engine innodb status ;这条命令非常简单,但是其结果可读性却比较差! 那如何能简化输出,并且增加其结果可读性呢?...比如我们打印一下 show engine innodb status 部分结果:InnoDB Buffer Pool 部分(截取片段 BUFFER POOL AND MEMORY),我把频繁关注几条数据做了简单注释...可以非常方便编写SQL直接从表innodb_metrics 中查询出结果。...1042*16/1024=16.28MB,同样方法,写条SQL,得出结果

84430

MySQL基础学习笔记

: 1、以上五个分组函数都忽略null值且不计入总数, 2、sum和avg一般用于处理数值型 max、min、count可以处理任何数据类型 3、都可以搭配distinct使用,用于统计去重后结果...【where 筛选条件】 group by 分组字段 【order by 子句】 */ /* 特点: 1、可以单个字段分组 2、和分组函数一同查询字段最好是分组字段 3、分组筛选...分组结果集 group by后面 having 4、可以多个字段分组,字段之间用逗号隔开 5、可以支持排序 6、having后可以支持别名 */ #查询每个工种最高工资...case when 条件1 then 结果1或语句1(如果是语句,需要加分号) when 条件2 then 结果2或语句2(如果是语句,需要加分号) ......else 结果n或语句n(如果是语句,需要加分号) end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要) 3、 if 结构 if 情况1

1K50

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券