第一种:构建表结构
面试官会给你一个业务场景,你认为需要建几张表,每张表的结构字段是什么,表跟表之间的关联关系是什么?
这种问题他主要考察你对于业务的理解,构建表结构的一个能力。最基本的局部建表,包括外建、主建等等。
第二种:多表联查
给你几张表,让你进行复杂查询的实现。
这个主要针对多表多列字段进行嵌套,子查询等。
第三种:窗口函数
主要有三种,聚合开窗函数、排序开窗函数、同列错位开窗函数。
聚合开窗函数:
函数名如果是聚合函数,则成为聚合开窗函数
语法:聚合函数(列) over(partition by 列 order by 列)
常见的聚合函数有:sum()、count()、average()、max()、min()
排序开窗函数:
row_number(行号)
rank(排名)
dense_rank(密集排名)
ntile(分组排名)
(ps:排序面试题会遇到很多,并且工作中也经常写。)
同列错位开窗函数,就是移动位置这样的题目。
lag(col,n):用于统计窗口内往上第n行值。
lead(col,n):用于统计窗口内往下第n行值。