没有在 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/

 

相关文章:

  • 2022-02-15
  • 2022-01-11
  • 2021-07-22
  • 2022-12-23
  • 2022-01-05
  • 2021-06-28
  • 2022-12-23
  • 2022-02-18
猜你喜欢
  • 2021-06-24
  • 2021-04-23
  • 2021-10-10
  • 2022-12-23
相关资源
相似解决方案