微前端架构如何改变企业的开发模式与效率提升
590
2022-10-06
mysql 原生语句点滴学习记录
点滴 SQL 记录
一、IF使用方法二、group by 分组之后查找重复的项(HAVING)三、Case两种格式:简单Case函数和Case搜索函数。四、group by分组之后取出最大值五、month 和 year 的使用六、行数据转列数据六、列数据转行数据
1. 第一种情况:2. 第二种情况:
一、IF使用方法
IF 表达式 IF( expr1 , expr2 , expr3 ) expr1 的值为 TRUE,则返回值为 expr2 expr1 的值为FALSE,则返回值为 expr3
如下:
二、group by 分组之后查找重复的项(HAVING)
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。 HAVING 子句可以让我们筛选分组后的各组数据。
查找phone不为空,且重复的手机号,原始数据:
sql 和执行后的结果:
三、Case两种格式:简单Case函数和Case搜索函数。
1、简单Case函数
case sex when '1' then '男' when '2' then '女' else '其他' end
2、Case搜索函数
case when sex = '1' then '男' when sex = '2' then '女' else '其他' end
case用法详细介绍地址
四、group by分组之后取出最大值
原始数据
使用sql查询: SELECT id, sex, age, max(age) AS age_en FROM USER GROUP BY sex
五、month 和 year 的使用
六、行数据转列数据
user1表: 主要用到user_name
user_kills表:主要用到user_id 和 kills 字段
最终目的需要形成如下表数据类型:
八戒 | 悟空 | 沙僧 |
47 | 24 | 9 |
sql语句如下:
3、select * sum(case when user_name=’沙僧’ then kills end) as ‘沙僧’, sum(case when user_name=’猪八戒’ then kills end) as ‘八戒’ sum(case when user_name=’孙悟空’ then kills end) as ‘悟空’ from user a join user_kills as b on a.id = b.user_id;
六、列数据转行数据
1. 第一种情况:
原始表数据内容:user1 表
序列表:
思路过程:首先 mobile 最后面加逗号,然后统计 mobile 有多少
最终 sql 语句:
2. 第二种情况:
select user_name,'arms' as equipment,arms from user1 a join user1_epuipment b on a.id = b.user_id;
查询结果如下:
最终使用 union 连接多个查询结果:
select user_name,'arms' as equipment,arms from user1 a join user1_epuipment b on a.id = b.user_idunionselect user_name,'clothing' as equipment,clothing from user1 a join user1_epuipment b on a.id = b.user_idunionselect user_name,'shoe' as equipment,shoe from user1 a join user1_epuipment b on a.id = b.user_id
如果确定每个结果是不重复的话,可以使用 union all 效率更高一点 最终实现的效果如下:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~