Over 子句
没有在 group by 出现的基本列,是不能在select 子句中使用,若要使用,就只能作为聚合函数的输入。
而 over 子句 就可以决解这一问题,如:
select Name, Max(Age) Over() as MaxAge from users
row_number()
从1开始,为每一条分组记录返回一个数字,
这里的ROW_NUMBER() OVER (ORDER BY Name DESC) 是先把xlh列降序,再为降序以后的每条xlh记录返回一个序号
row_number() OVER (PARTITION BY Department ORDER BY Name)
表示根据Department分组,在分组内部根据Name排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
select * from (select name,sex,COUNT(sex) as sexCount, ROW_NUMBER() OVER(PARTITION BY NAME order by count(sex) desc) as rowIndex
from uses group by NAME,sex) a where rowIndex=1
http://q.cnblogs.com/q/63682/