SQL 问答
1.row_number、rank、dense_rank区别
row_number 相当于行号,12345排下去
rank 会跳级,1224
dense_rank不会跳级,1223
2.UNION 与UNION ALL 的区别
UNION 去重
3.count(1)、count(*)、count(列)的区别
执行效果上:
count(1)和count(*)的使用方法和结果是一样的,不会忽略NULL值,count(列)不包括null值
执行效率上:
列名为主键,count(列名)会比count(1)快
列名不为主键,count(1)会比count(列名)快
如果表多个列并且没有主键,则count(1)的执行效率优于count(*)
如果有主键,SELECT count(主键)的执行效率是最优的
如果表只有一个字段,则select count(*)最优