mysql - 选择特定字段的值超过同一字段最大值一半的行

标签 mysql sql select-query

我想知道是否有一种方法可以选择特定字段的值超过同一字段最大值一半的行。

例如,我们有一个包含 3 个字段(id、name、rate)的结果集,其中 rate 是一个别名。如果最大速率为 70,则查询应返回所有 rate > 35 的行(3570 的一半).

类似于:

SELECT * FROM (A heavy and large select)as r WHERE r.rate > MAX(rate) / 2

请注意,我不知道最大速率是多少,并且想在单个查询中完成。

更新
main select 是一个非常繁重的查询,而 rate 是一个别名,所以使用 max rate 的子查询需要再次编写那个繁重的查询。

最佳答案

它基本上就像你说的那样编码:

select * from mytable
where rate > (select max(rate) from mytable) / 2:

关于mysql - 选择特定字段的值超过同一字段最大值一半的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14338837/

相关文章:

MySQL 5.6 - InnoDB - DATA_FREE 未使用,但表不断增长

mysql - 强实体与弱实体 MYSQL

mysql - 我没有按照 DESC 顺序正确获取 row_num()

用于获取数据的 SQL 查询

MySQL Group by 和 Having 子句问题

sql选择5个最高值

sql - 通配符作为存储过程的参数

PHP 从 MySQL 获取下一个结果

mysql - 如何在 Sql-server 中对按日期分组的时间求和

sql - 我想在子查询中返回多行