sql/mysql过滤器仅包含最大值

我有一个像这样的结果集:
ID | name  | myvalue
 1 | A1    | 22
 2 | A2    | 22
 3 | A3    | 21
 4 | A4    | 33
 5 | A5    | 33
 6 | A6    | 10
 7 | A7    | 10
 8 | A8    | 10
 9 | A9    | 5

我想要的是,只包括包含最高“myvalue”的行(在前面的例子中是33),然后:

ID | name  | myvalue
 4 | A4    | 33
 5 | A5    | 33

IE查询应该选择最高的“myvalue”(IE 33)并且它应该删除具有myvalue<的行. 33

SELECT ..... WHERE myvalue = THE_HIGHEST_OF(myvalue)

希望能够清楚……

先感谢您

编辑:

我目前的查询

SELECT 
    *,(very long code that returns a integer as relevance score) AS myvalue
FROM
    mytable
HAVING
    myvalue = ?????
ORDER BY
    myvalue DESC

现在最高的myvalue可以是10,20,30,任意数字……在最终结果集中我想只包含具有最高相关性得分的行

香港专业教育学院尝试使用GROUP BY,但我总是需要重复…

(very long code that returns a integer as relevance score) AS myvalue

…两次

解决方法

SELECT * FROM t WHERE myValue IN (SELECT max(myValue) From t);

See this SQLFiddle

编辑:

按照discussion with OP.
OP希望在WHERE子句中使用别名.但是,您只能在GROUP BY,ORDER BY或HAVING子句中使用列别名.
看看this answer.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03