SQL - 两个表的查询
问题描述:
对于一个项目,我必须编写两个表并对它们进行查询。我写了这些表格,但需要查询部分的一些指导。SQL - 两个表的查询
这是第一张桌子。
CREATE TABLE Country
(Name VARCHAR(35) NOT NULL UNIQUE,
Code VARCHAR(4) CONSTRAINT CountryKey PRIMARY KEY,
Capital VARCHAR(35),
Province VARCHAR(35),
Area NUMERIC CONSTRAINT CountryArea
CHECK (Area >= 0),
Population NUMERIC CONSTRAINT CountryPop
CHECK (Population >= 0));
这是第二张表。
CREATE TABLE City
(Name VARCHAR(35),
Country VARCHAR(4),
Province VARCHAR(35),
Population NUMERIC CONSTRAINT CityPop
CHECK (Population >= 0),
Longitude NUMERIC CONSTRAINT CityLon
CHECK ((Longitude >= -180) AND (Longitude <= 180)) ,
Latitude NUMERIC CONSTRAINT CityLat
CHECK ((Latitude >= -90) AND (Latitude <= 90)) ,
CONSTRAINT CityKey PRIMARY KEY (Name, Country, Province));
我的查询必须做到以下几点:
Return the min, max, and average latitude of all cities for all the countries in the table.
And should be ordered by continent first and country second.
这是PostgreSQL的。
谢谢你的时间。
答
您不要在您的问题中披露RDBMS:是的MySQL 或 PostgreSQL?
然而,这应在两个工作:
SELECT
continent -- not quite sure what this refers to
, ctr.Code AS country_code
, avg(city.latitude) AS avg_population
, min(city.latitude) AS min_population
, max(city.latitude) AS max_population
FROM
country ctr
JOIN city ON ctr.Code = city.Country
GROUP BY
continent
, ctr.Code
ORDER BY
continent
, ctr.Code
;
的GROUP BY
条款使计算值是指ctr.Code。
对不起。它在postgres中找到平均值,最小值和最大纬度。 感谢您的支持! – FidelCashflo