【发布时间】:2020-09-22 20:29:32
【问题描述】:
使用 postgresql 我必须建立两个名为 country 和 neighbour 的表。这是我写的查询。
CREATE TABLE country (
cid INTEGER PRIMARY KEY,
cname VARCHAR(20) NOT NULL,
height INTEGER NOT NULL,
population INTEGER NOT NULL
);
CREATE TABLE neighbour (
country INTEGER REFERENCES country(cid) ON DELETE RESTRICT,
neighbor INTEGER REFERENCES country(cid) ON DELETE RESTRICT,
length INTEGER NOT NULL,
PRIMARY KEY(country, neighbor)
);
现在我想解决的问题是,对于每个国家,我必须找到一个海拔最高的邻国。我必须报告它的id和名字
我必须得到国家的 id 和 name,它是邻国的 id 和 name,海拔最高。
SELECT country.cid,country.cname,foo.cid,foo.cname
from country,(SELECT cid,cname
from country
join neighbour
on country.cid = neighbour.neighbor) as foo
group by country.cid, country.cname, foo.cid, foo.cname;
这是我所做的,但我没有在哪里添加 max() 子句来查找最高海拔点。
【问题讨论】:
标签: sql database postgresql join greatest-n-per-group