我有一个简单的 MySQL 数据库,列出了每个用户每天在线花费的总时间(以秒为单位)(只是一个字符串)。我想在某一天选择前 10% 的用户并返回用户名。
有没有办法在 MySQL 中在单个查询中执行此操作..?我已经看到您选择前 10 名用户的示例,但不是基于总用户的百分比......
我有一个简单的 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
尝试这个
SELECT 0.1 * count(username) as percented_users FROM prices
GROUP BY username
你可以这样试试:
select * from table limit floor((select count(1) from table)*0.1)