0

プロジェクトでは、2 つのテーブルを作成し、それらに対してクエリを実行する必要がありました。テーブルを作成しましたが、クエリ部分に関するガイダンスが必要です。

これが最初のテーブルです。

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));

これが2番目のテーブルです。

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にあります。

お時間をいただきありがとうございます。

4

1 に答える 1

1

質問で 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 を参照するようにします。

于 2012-12-07T05:33:36.493 に答える