如何在多个表中选择总和的最大值



我需要一些帮助来解决这个问题。我正试着用三张表求一个和的最大值。我一直试图在其他帖子的帮助下解决这个问题,但到目前为止,他们都没有帮助我。当使用极限1时,我设法得到了正确的答案,但我想知道如果没有这个,我怎么能做到。

这三张表是

表格

到目前为止,我得到了这个

(select vnamn, sum(mangd) as a from land, export, varldsdel where varldsdel.vkod=land.vkod and land.landkod=export.landkod and ar=2004 group by vnamn)

这给了我以下结果

+----------------+-------------+
|     vnamn      | sum(mangd)  |
+----------------+-------------+
| sydamerika     |       61000 |
| noramerika     |       50000 |
| europa         |       1200  |
+----------------+-------------+

现在这就是我陷入困境的地方。我想做这个结果的最大化,使得只有";sydamerika |61000〃;显示,我已经尝试了一整天,但无法掌握窍门。

感谢

您可以使用Common Table Expression(CTE(,然后使用MAX聚合函数过滤出最高值:

WITH summed_mangd AS (
SELECT vnamn, 
SUM(mangd) AS total 
FROM       land
INNER JOIN export
ON export.landkod = land.landkod
INNER JOIN varldsdel 
ON varldsdel.vkod = land.vkod 
WHERE ar = 2004 
GROUP BY vnamn
)
SELECT vnamn,
total
FROM summed_mangd
WHERE total = (SELECT MAX(total) 
FROM summed_mangd)

因为您已经有了select查询,所以您可以改为这样做;

Select vnamn, max(a) as mangd from (select vnamn, sum(mangd) as a from land, export, varldsdel where varldsdel.vkod=land.vkod and land.landkod=export.landkod and ar=2004 group by vnamn) k

最新更新