rank(), row_number(), dense_rank() over (partition by a order by b) 表示按照a group by 后,对b排序加顺序号。
avg(cost) over(order by orderdate rows between 3 preceeding and 3 following) 表示算上当日以及之前2天,以及之后3天的平均开销。
计算中位数方法: select cast(row_number() over(partition by a order by b asc) as signed) as rnk1 ,cast(row_number() over(partition by a order by b desc) as signed) as rnk2 from table where abs(rnk1-rnk2)=0 or rnk1=rnk2
连续登录天数超过多少天写法:
selectdistinct userid
from(select userid
,logindate
,lead(logindate,5)over(partitionby userid orderby logindate)as date2
from login
wheremonth(login)=7) a
where datediff(date2,logindate)=5