SELECT substring_index(substring_index(profile,',',-2),',',1) age,count(*) number
FROM user_submit
GROUPBY age;
1.3.3 运行结果
1.3.4 考察知识点
substring_index()就是一个普通的函数,是可以和count函数一起用的
2 窗口函数
2.1 找出每个学校GPA最低的同学
2.1.1 题目内容
2.1.2 示例代码
SELECT device_id,university,gpa FROM(SELECT device_id,university,gpa,row_number()over(partitionby university ORDERBY gpa asc) rk
FROM user_profile) u
WHERE u.rk=1
2.1.3 运行结果
2.1.4 考察知识点
①<窗口函数>over(partitionby<用于分组的列名>orderby<用于排序的列名>)
② 36row_number遇到同名次,是会抢占后续名词的位置的 如113
这个窗口函数一般是在select子句中的列名,因此无法直接在WHERE子句中对其筛选,若需要对其筛选
可以使用把通过窗口函数查到的结果当成一个新表括起来,然后再去查询就行了
③ partitionby就相当于是分组
④ 窗口函数是对每一列都进行分析了