1:group_concat 函数。可延申到 concat,concat_ws,collect_list,collect_set的用法。
2:题目是按照2列排序,但是窗口函数必须按照1列 排序。如何实现?只能在最后order by一下。
3:留存率的问题。首先(id 首次登录)匹配(id 其他时间登录),然后count(distinct case when 实现任意天数的留存率)
4:join on 和 where。rn需要同时匹配两端的数据,用到between and。
5:说到累计 running_total.用到sum(cnt)over(order by )函数。
6:遇到没有出现的行数据,可以直接union即可。
7:窗口函数 rank这种,可以立刻 和其他的函数 一起 运行。但是不能用引用名S放里面。
8:这题用了 窗口函数 然后把窗口where一下来筛选。因为这题要的信息太多了!
如果用group by+having的话,会很难达到既保证信息多,又保证分组正确。
9:中位数。
原先先算出中位数start和end,即6,7。表1
然后sum()over 排序,即2,6,10,12。表2
最后表2join 表1 用 排名 between and 但是不对劲。
因为 只能出来 6那一列 ,10出不来。
10:
11: