MySQL选择前10%的用户

时间:2013-06-11 14:57:51

标签: mysql mysql-python

我有一个简单的MySQL数据库,列出了每个用户每天花在线上的总时间(仅限一个字符串)。我想在某一天选择前10%的用户并返回用户名。

有没有办法在一个查询中在MySQL中执行此操作..?我见过您选择前10位用户的示例,但不是基于总用户的百分比......

3 个答案:

答案 0 :(得分:0)

试试这个

     SELECT 0.1 * count(username)  as percented_users FROM prices
     GROUP BY username

答案 1 :(得分:0)

希望这会对你有所帮助

我使用CURRENT_DATE来限制搜索。

SELECT user_id, date, total_time FROM
(
  SELECT user_id, @rownum:=@rownum+1 AS rownum 
  FROM TABLE_USER , (SELECT @rownum:=0) R
  WHERE date = CURRENT_DATE 
  ORDER by total_time desc
) temp 
where rownum < (select count(*) from TABLE_USER where date = CURRENT_DATE) / 10

答案 2 :(得分:0)

您可以尝试这种方式:

select * from table limit floor((select count(1) from table)*0.1)