【发布时间】:2014-03-12 02:03:07
【问题描述】:
我正在学习 PostgreSQL,并且正在努力解决这个问题。
我已经设置了一个 olympics 表,我从中查询并返回结果。我正在查询以查找国家和他们赢得的金牌数量,如下所示:
SELECT country, golds
FROM (SELECT distinct country, sum(gold_medals) as golds
FROM olympics where year >= 2000 group by country
) foo
WHERE (golds < 10)
ORDER BY golds desc limit 10;
这准确地返回:
country | golds
-------------+-------
Turkey | 9
Bulgaria | 8
Azerbaijan | 6
Estonia | 6
Georgia | 6
North Korea | 6
Thailand | 6
Nigeria | 6
Uzbekistan | 5
Lithuania | 5
我需要返回在这段时间内赢得相同数量金牌的国家(即立陶宛和乌兹别克斯坦获得 5 枚金牌,以及所有国家获得 6 枚金牌)。
我该怎么做呢?
【问题讨论】:
标签: sql postgresql aggregate common-table-expression exists