商业中台数据分析工作记录(一)——insert,create,union,averageifs,Ctrl+T

2022-08-06,,,,

入职数据中台商业部门的萌新小白,通过CSDN的平台,记录自己的日常工作收获和感想,希望各位大佬提出建议和指正~
我的记录将从SQL、Excel、业务知识和工作技巧这几点进行。
2020.7.8——2020.7.10记录(入职第一周)~~

文章目录

  • SQL
    • insert into
    • create table
    • union(all)
    • 工作技巧
  • Excel
    • averageifs()
    • Ctrl+T—智能表格按键

SQL

insert into

insert into语句有三种形式,分为单行插入、多行插入和查询结果集插入。
(1)单行插入
语法:

insert into table_name values(value1,value2,....);
-- 或者
insert into table_name(column1,column2,...) values(value1,value2,....);

第一种在表名后面不需要加列名,但是在写插入值的时候必须严格按照表结构的列顺序来写;
第二种在表名后面需要加上列名,列名可以视插入的具体列而定,在写插入值的时候要和其严格对应;
(2)多行插入
语法:

insert into table_name(column1,column2,...) 
values(value1,value2,...),
values(value1,value2,...),
values(value1,value2,...)

用于在表格中一次性插入多行时使用
(3)查询结果集插入(*)

语法:

insert into table_name
  select子句

示例:
b2表

-- 创建一个类似b2表的b2_test表
create table b2_test like b2;  

-- 将查询结果集插入到b2_test表中
insert into b2_test
  select * from b2 where user_name='小明' 

create table

create table 语句有三种形式,常规创建语句、利用like关键字创建和利用查询结果集创建。
(1)常规语句创建
语法:

create table [if not exists] table_name(
  column_name1 data_type[size] [not null|null] [default value] [auto_increment],
  column_name2 data_type[size] [not null|null] [default value] [auto_increment],
  ... 
  primary key(col1,col2,...)
);

alter table table_name auto_increment=100;

示例:

-- 新建一个表tasks_1
CREATE TABLE IF NOT EXISTS tasks_1 (
  task_id INT(11) NOT NULL AUTO_INCREMENT,
  subject VARCHAR(45) default 'math' null,
  start_date DATE DEFAULT NULL,
  end_date DATE DEFAULT NULL,
  description VARCHAR(200) DEFAULT NULL,
  PRIMARY KEY (task_id)
);

(2)利用like关键字创建(*)
语法

create table table_name1 like table_name2

利用like关键字,可以创建一个和table2表结构完全相同的表table1。
示例:

-- 创建一个类似b2表的b2_test表
create table b2_test like b2;  

-- 将查询结果集插入到b2_test表中
insert into b2_test
  select * from b2 where user_name='小明' ;

(3)利用查询结果集创建(*)
语法:

create table table_name  as 
select子句

示例:

-- 创建一个与查询结果集结构相同的新表,并将结果集插入该表
create table b2_test2 as 
  select * from b2 where user_name='小明' ;

Tips:在工作时,所需数据量大或者查询时间久而要分多段进行查询的时候,可以利用查询结果集创建一个结果集表,而后利用查询结果集插入将分多段查询的结果分别插入到该结果表里。如此可以节省后续手工汇总多个结果集的工作量。

union(all)

union语句用于合并多个select查询语句的结果集(纵向合并)。union内部的每个select语句必须拥有相同顺序、数量和数据类型的列。
语法:

select column1,column2,... from table1
union [all]
select column1,column2,... from table2

union和union all 的区别

  • 对重复结果的处理不同

union all是直接连接,取到得是所有值,记录可能有重复;union 是取唯一值,记录没有重复。所以union在进行表链接后会筛选掉重复的记录,union all不会去除重复记录。

  • 对排序的处理不同

union将会按照字段的顺序进行排序;union all只是简单的将两个结果合并后就返回。

  • 二者效率不同

union all要比union快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用union all。

  • 注意事项

union 和 union all都可以将多个结果集合并,而不仅仅是两个,所以可将多个结果集串起来;
union结果集中的列名总是等于第一个select子句中的列名;
在使用union关键字时,只能在最后使用order by 子句,即将多个查询的结果合并在一起后再排序,决不能写多个order by 子句。

工作技巧

1、在更新数据时,要往前多更新一天的数据,将其与之前跑好的该天的数据作对比,看是否有出入。这是一种简单的检验数据集正确与否的方法
2、跑数时多会涉及到时间维度的更新,可以通过使用SQL变量传参的方法来简便修改时间的操作。

Excel

averageifs()

类似的还有:sumifs()函数、countifs()函数等
计算指定单元格区域中满足多个条件单元格的算术平均值。

averageifs函数的语法结构:
averageifs(average_range,criteria_range1, criteria1, [criteria_range2, criteria2], …)
例子如下:

需要注意的是条件格式的书写
示例:

这里用条件求平均函数求苹果手机的平均单价,条件格式有两种写法
=AVERAGEIFS(C64:C67,B64:B67,"="&"苹果手机")

=AVERAGEIFS(C64:C67,B64:B67,"苹果手机")
这两种写法都可以完成功能,但是第一种写法更具有普适性,以后要注意用这种方法书写条件,即用&连接符连接一个条件语句的多个部分。

Ctrl+T—智能表格按键

Ctrl+T智能表格按键不仅能一招美化表格,还能自动将数据区域命名,同时自带高级筛选功能。【智能表格】能自动扩展表格,无论是插入行/列都能扩展,格式也会相应扩展。
自带【切片器】功能,除了透视表能使用切片器之外,智能表格同样也支持切片器的操作。选中表格,点击【插入】选项卡下的【切片器】,勾选需要筛选的字段即可。如此即可完成高级筛选功能,切片器也可以挑选样式。
自带【汇总计算】功能,勾选【设计】选项卡中的【汇总行】即可,常规内置的七八种汇总方式。

本文地址:https://blog.csdn.net/qq_37234843/article/details/107299171

《商业中台数据分析工作记录(一)——insert,create,union,averageifs,Ctrl+T.doc》

下载本文的Word格式文档,以方便收藏与打印。