假设我需要打印
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)
这样的子查询,还有其他任何方法,哪个更便宜?
答案 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);
您可以使用上述查询作为参考,并相应地更改您的查询。
希望这有帮助。