2

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

有没有办法在 MySQL 中在单个查询中执行此操作..?我已经看到您选择前 10 名用户的示例,但不是基于总用户的百分比......

4

3 回答 3

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
于 2013-06-11T15:28:46.547 回答
0

尝试这个

     SELECT 0.1 * count(username)  as percented_users FROM prices
     GROUP BY username
于 2013-06-11T15:11:36.993 回答
0

你可以这样试试:

select * from table limit floor((select count(1) from table)*0.1)
于 2018-02-27T05:38:44.190 回答