基本语句
SELECT *
FROM (Table)
WHERE (处理关于单独存在column的条件)
group by
having avg(col) > 5(只能处理有aggregate result的条件)
ORDER BY
解释:
运行顺序:
- FROM 子句 组装来自不同数据源的数据;
- WHERE 子句基于指定的条件对记录行进行筛选;
- group by 子句将数据划分为多个分组;
- 使用聚集函数进行计算;
- 使用having子句筛选分组;
- 计算所有的表达式;
- select的字段;
- 使用order by对结果集进行排序。
窗口函数
- 基本语法
SELECT start_terminal,
duration_second,
SUM(duration_seconds) OVER
(PARTITION BY start_terminal ORDER BY start_time)
AS running_total
FROM tutorial.dc_bikeshare_ql_2012
WHERE start_time < '2012-01-08'
Aggregate Function(SUM,AVG,etc) 和 Window Functions(Over,Partition,order)的区别
- Agg函数会将所使用的那个字段的所有行都进行运算,并且返回一行
- Win函数会将所使用的那个字段的所有行都进行一定的运算,并且返回同等多的行,不会改变原本的行数
窗口函数的使用:
- 他是按照每个窗口来计算的,它不仅可以和聚合函数一起使用还可以和单值函数一起使用,它的sum函数是有顺序的
- group by
- window function
- join函数
join
- join 对列进行操作
- union拼接行
字符串函数
Substring_index 函数
substring_index(“待截取的字符串,一般是某个字段名”,“分割符”,count) count为正数从左往右数,count为负数从右往左数
#思路:先将每个用户的性别提取出来形成一列属性,形成一张包含性别的表,其次再按性别分组统计
LIMIT 用法
AVG 函数会自动忽略null值
-
%H,对应00-23小时
-
%i,对应00-59分钟
-
%s,对应00-59秒
-
%Y,对应四位数的年份,如2022
-
%d,对应2位数的天,01-31
-
%m,对应两位数的月份,01-12