我大约有10万行,需要按百分比进行分类 对于前 前1% 第二个4% 第三5% 1%表示给我总行数的1%
答案 0 :(得分:0)
在MySQL 8+中,您可以使用窗口函数:
select t.*,
(case when seqnum <= cnt * 0.01 then 'Top 1%'
when seqnum <= cnt * 0.05 then 'Top 5%'
else 'Everything else'
end) as grp
from (select t.*, count(*) over () as cnt,
rank() over (order by ?) as seqnum
from t
) t
?
是一列,用于指定您关心的顺序-“前1%”的含义。
MySQL还有PERCENT_RANK()
可以直接计算值-因此您不必进行除法。