一、数据分析的一般流程及应用场景
1.数据利用领域:社交(抖音,微信)、金融(财务,信用评估)、招聘(前程,猎聘),交通(美团,饿了么)
2.数据分析流程:
(1)对问题进行定义
(2)数据获取、清理与存储、分析与建模
(3)系统、报告
3.目的:通过数据分析报告,解决问题
4.应用软件:python、anaconda、mysql
二、MYSQL学习心得
1.SQL语法
SQL几乎所有的语句都要使用select来选取列数据,select返回的结果是无序的,可使用order by(位于from字句之后)排序,asc 升序,desc 降序
也可在输入语句前,先指定库,一般情况下是不会跨库查询的,因此可以直接用use语句指定库名,后续from不用再输入库,如果需要指定到特定库,再到from那里指定,则优先运行from那里的库,再运行use指定的库
2.学习中的卡点
(1)分组函数GROUP BY 和HAVING
GROUP BY + HAVING : GROUP BY 有种创建透视表的感觉,而HAVING可以理解为筛选器(过滤分组的功能)
HAVING 和 WHERE 的区别
WHERE 标准的行级过滤器
HAVING 一般搭配GROUP BY 进行使用
(2)LEFT JOIN
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
LEFT JOIN 关键字语法
例如:SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。LEFT JOIN 关键字会从左表那里返回所有的行,即使在右表中没有匹配的行。
(3)笛卡尔积
(4)CASE WHEN函数的应用
有如下数据
按照国家和性别进行分组,得出结果如下
普通情况下,用UNION也可以实现用一条语句进行查询。但是那样增加消耗(两个Select部分),而且SQL语句会比较长。下面是一个是用Case函数来完成这个功能的例子
SELECT country,
SUM( CASE WHEN sex = '1' THEN population ELSE 0 END), --男性人口
SUM( CASE WHEN sex = '2' THEN population ELSE 0 END) --女性人口
FROM Table_A GROUP BY country;
这样我们使用Select,完成对二维表的输出形式,充分显示了Case函数的强大。
(5)TIMESTAMPDIFF和TIMESTAMPADD函数的用法
语法:
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。
说明:
返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。
语法:
TIMESTAMPADD(interval,int_expr,datetime_expr)
说明:
将整型表达式int_expr 添加到日期或日期时间表达式 datetime_expr中。
学习心得:在学习数据分析之前的心理和现在对其的认识是不一样的,站在门口看只看到了数据分析的一个角落,当我踏进这扇大门后,我才发现数据分析的世界,是如此的美丽动人,充满无限的可能,等待我去挖掘。虽然在学习的过程中遇到了挺多困难,但我会坚持下去,因为这是我选择的路。