如何选择与max(anotehrField)存在的元组相对应的字段

时间:2014-03-21 08:59:14

标签: mysql sql

假设我需要打印

select field1,max(field2) from table1

这里是field1的field1的平均值,whcih与max(field2)中的元组的元组相对应。

如何做到这一点?

例如

 |  49 | 2000 |
 |  50 | 2001 |
 |  63 | 2002 |
 |  79 | 2003 |

此处最大值为79,即2003年,但上述选择语句将返回

79 2000

我如何获得像

这样的输出

79 2003

这是一个例子,我正在寻找一种通用的方法。

我知道我可以先使用order by子句然后使用limit 1,或者我可以编写像Having abc >=All(some subquery)这样的子查询,还有其他任何方法,哪个更便宜?

3 个答案:

答案 0 :(得分:1)

试试这个,

;With Cte as 
(
select max(F1)  mf from F
)
select f1,f2 from CTE 
inner join F on mf=f1

答案 1 :(得分:1)

试试这个

SELECT * FROM
(SELECT MAX(field1) AS fld from table1) S 
Inner JOIN table1 T ON S.fld = T.field1

答案 2 :(得分:1)

我猜你试图根据某个特定的字段值找到某个列的最大值。有不同的方法可以做到这一点。请尝试以下查询: -

SELECT article, dealer, price 
FROM   shop
WHERE  price=(SELECT MAX(price) FROM shop);

您可以使用上述查询作为参考,并相应地更改您的查询。

希望这有帮助。