作为数据分析师,SQL是必备技能,因为数据分析第一步是从数据库中获取数据,而SQL是方便的取数工具。那如何学习sql呢,我们不仅要把数据取出来,还要对数据进行各种清洗转化,以便于在不同维度进行求和、计数、去重计数、求平均等,进而对数据进行分析
子查询与多表连接是很重要的知识,简单的查询,可以用嵌套子查询解决,复杂的,需要对多张表进行关联,常见连接类型有:
内连接:inner join 取两表的交集,其中表可以是子查询的结果集
左连接:left join 取交集且左表所有
右连接:right join 取交集且右表所有
全连接:full join:取两个表的并集
我们需要对常见函数非常熟悉
1.日期类函数
to_date()
to_date的格式:to_date(‘要转换的时间’,’转换成的时间格式’), 两个参数的格式必须匹配,否则会报错。
to_char()
trunc(日期,)
1.select trunc(sysdate) from dual --2013-01-06 今天的日期为2013-01-06
2.select trunc(sysdate, 'mm') from dual --2013-01-01 返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2013-01-01 返回当年第一天
4.select trunc(sysdate,'dd') from dual --2013-01-06 返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2013-01-01 返回当年第一天
6.select trunc(sysdate,'d') from dual --2013-01-06 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2013-01-06 17:00:00 当前时间为17:35
8.select trunc(sysdate, 'mi') from dual --2013-01-06 17:35:00 TRUNC()函数没有秒的精确
/***************数字******************
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120
coalesce(参数1,参数2,参数3) 返回参数中第一个非null的值
2.字符串类函数
(1)去空格函数
LTRIM() 去掉头空格
RTRIM() 去掉尾部空格
(2)
截取部分字符
拆分字符串
3.数值运算类函数
4.窗口函数