我有一个简单的MySQL数据库,列出了每个用户每天花在线上的总时间(仅限一个字符串)。我想在某一天选择前10%的用户并返回用户名。
有没有办法在一个查询中在MySQL中执行此操作..?我见过您选择前10位用户的示例,但不是基于总用户的百分比......
答案 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)