繁体   English   中英

SQL-从两个表查询

[英]SQL - Query from two tables

对于一个项目,我必须编写两个表并对它们进行查询。 我已经写了表格,但是需要查询部分的一些指导。

这是第一张桌子。

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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM