我有一个简单的 MySQL 数据库,列出了每个用户每天花费在网上的总时间(以秒为单位)(只是一个字符串)。我想在某一天选择这些用户中排名前 10% 的用户,然后返回用户名。
有没有办法在 MySQL 中通过单个查询来做到这一点……?我见过您选择前 10 名用户的示例,但不是基于总用户的百分比...
最佳答案
希望对你有帮助
我使用 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
关于MySQL选择前10%的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17047302/