SQL 实现分组并按百分比选取记录


SQL

select T.gp,T.gzi from xxx as T


select  T.gp,T.gzi from 
(
select  COUNT(gp) OVER(PARTITION BY gp) as cc ,row_number()
over( partition by gp  order by gzi) as rows, gp,gzi  from xxx 
) as T  where rows <= case when cast(cc as int)%2=0 then cc/2 else cc/2+1 end

结果图

SQL 实现分组并按百分比选取记录.png

知识共享许可协议
《SQL 实现分组并按百分比选取记录》 常伟华 创作。
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议 | 3.0 中国大陆许可协议进行许可。

站内公告