MySQL选择前10%的用户

标签 mysql mysql-python

我有一个简单的 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/

相关文章:

php !isset 和 empty 不工作

mysql - 处理 "MySQL server has gone away"错误的 Python Singleton 类

php - 获取使用 "group by"检索的正确行值

PHP 遍历我的数据库中的 JSON 对象

mysql - 更新 SQL 查询的 Python 语法

python - 在我的情况下如何使用 Executemany?

python - 如何获取更新时的最后一行 ID?

MySQL选择左连接为空的行

mysql - MySQL中查询的疑惑

mysql - pgloader:堆耗尽,游戏结束。问题