一、SUM相加时加不加order by的区别
利用窗口函数求和,加order by会累加求和,而不加order by则会直接求和。
如下:
RN_SUM_ORDER列在求和时加了排序,那他的结果就是第一条记录是语文成绩,第二条记录是语文+数学成绩,第三条记录是语文+数学+英语成绩。
而RN_SUM列则是直接求语文+数学+英语的成绩
二、RANK、DENSE_RANK、ROW_NUMBER排序的区别
由以下SQL和执行结果可以很直观的看出,
RANK排序当遇到相同排名时,排名是有间隔。也就是说,当排名并列时,占用下一名次。
DENSE_RANK排序当遇到相同排名时,排名之间没有间隔。也就是说,当排名并列时,不占用下一名次。
ROW_NUMBER会为每一行分配一个唯一且连续的序号,不管排名是否并列。