这个问题在这里已经有答案了:
将sql server查询转换为mysql[重复](1个答案)为mysql中的数值选择top x(或bottom)percent(3个答案)两年前关门了。我需要返回选择中所有记录的33%
select id , amount, 'low' from table 1 where amount > 1 order by 2;
所以我要把这张唱片的前33%还给你
tktrz96b1#
我认为您需要枚举行,除了最新版本的mysql之外,其他所有的行都需要变量:
select t.* from (select t.*, (@rn := @rn + 1) as rn from (select id , amount, 'low' as col from table 1 where amount > 1 order by 2 ) t cross join (select @rn := 0) params ) t where rn <= 0.33 * @rn; -- @rn is now set to the total number of rows
1条答案
按热度按时间tktrz96b1#
我认为您需要枚举行,除了最新版本的mysql之外,其他所有的行都需要变量: