【发布时间】:2018-08-08 10:38:14
【问题描述】:
我有一个这样的结果集:
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
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
...两次
【问题讨论】:
-
感谢您的回答,有没有办法通过一次选择来做到这一点?
-
你到底想要什么? (想重复
myvalue两次还是一次?) -
你不能从你的非常长的代码中选择
MAX...吗? -
我认为不是,但我不确定,我应该如何使用 group by?