工作需要,需要使用MySQL做
数据分析,以前用python,也简单用过oracle,但从没有用过Mysql。只要解决问题需要,我都可以边学边解决问题。但是不能只解决问题,不记录知识,再不起眼,也花费了我的时间,记录下来,供自己以后使用
首先是查询:
1、关于limit
用法简单,只是不同于oracle的 where rownum<2
这里只用 limit 1
写法:
select * from a limit 1;
连where都不需要
2、关于计算两个日期之间的年
使用了 timestampdiff(typy , date1,date2) 如:
说明:
- 这里的年可不会四舍五入,只是向下取整,如两日期间隔 3年11个月,结果也是3。
- 这里的type可以是SECOND、MINUTE、HOUR、DAY、WEEK、QUARTER、MONTH、YEAR
3、取出某个时间值的年份、月份、日
使用 extract(type from date/time),这里的type可是year、year_month、month、day、day_hour、DAY_SECOND、DAY_minute,具体结果可以一一试试。
如:
结果返回:2021
4、将分组中的值连起来,用逗号分隔 , group_concat() 比如,你有一组数据,希望将每个人的“skill”放在一个字段中,并用逗号分隔。
| name | skill |
| 张三 | 唱歌 |
| 张三 | 跳舞 |
| 张三 | 数据分析 |
| 李四 | 表演 |
使用的脚本如下:
5、透视表 百度发现mysql没有透视表功能,参考了一下,用case when 可以解决,详细如下:
基础表如下:
| serv | state |
| a | 正常 |
| b | 正常 |
| c | 不正常 |
使用查询语句如下:
查询结果如下:
OK,以上为今天工作中遇到的mysql问题及解决方案。
加油,亲爱的自己!