目录
1、如何快速生成多行的序列
-- 需求: 请生成一列数据, 内容为 1 , 2 , 3 , 4 ,5 仅使用select语句
select explode(split('1,2,3,4,5',',')) as num;
-- 需求: 请生成一列数据, 内容 1~100 python 中有一个函数 range(1,100)
-- SQL函数: https://spark.apache.org/docs/3.1.2/api/sql/index.html
-- sequence(start, stop, step) : 参数1: 起始值 参数2 结束值 参数3 步长(默认为1) 包头包尾
select explode(sequence(1,100)) as num;
2、如何快速生成表数据
快速生成列
快速生成内容
永久视图
-- 创建永久视图
create or replace view t3 as
select stack(2,'M','F')as sex;
select * from t3;
临时视图
-- 创建临时视图
create or replace temporary view t4 as
select stack(2,'男','女')as sex;
select * from t4;
复制表
-- 创建复制表
use test_sql;
create table t5 as
select stack(2,'M','F')as sex;
select * from t5;
缓存相关内容
-- 缓存表
cache table t6 as
select stack(2,'M','F')as sex;
--清空一个表的缓存数据
UNCACHE TABLE t6;
--清空所有的缓存
clear chche;
3.开窗函数
创建数据
-- 初始化一些数据
create or replace temporary view t1(cookie, dateStr,pv) as
values ('cookie1','2022-10-05',80),
('cookie1','2022-10-06',75),
('cookie1','2022-10-07',75),
('cookie1','2022-10-08',79),
('cookie1','2022-10-09',85),
('cookie1','2022-10-10',71),
('cookie2','2022-10-05',80),
('cookie2','2022-10-06',74),
('cookie2','2022-10-07',79),
('cookie2','2022-10-08',92),
('cookie2','2022-10-09',95);
select * from t1;
排序函数
平分函数
聚合函数
向上向下窗口函数