这样我得到一条河流,它流经的所有省份都被计算在内:
SELECT Geo_River.RIVER, COUNT(Geo_River.COUNTRY)
FROM Geo_River
GROUP BY Geo_River.RIVER
这样,我多次得到同一条河,这条河流经的每一个国家和省份都是如此:
SELECT Geo_River.RIVER, COUNT(Geo_River.COUNTRY)
FROM Geo_River
GROUP BY Geo_River.RIVER, Geo_River.COUNTRY
我想数一数这条河流经的国家,但有些国家被划分为不同的省份。如果是这样的话,这个国家应该算一个国家,而不是按省份的数量来算。
CREATE TABLE Country
(Name VARCHAR(40) NOT NULL UNIQUE,
Code VARCHAR(4) CONSTRAINT CountryKey PRIMARY KEY,
Capital VARCHAR(40),
Province VARCHAR(40),
Area INTEGER CONSTRAINT CountryArea
CHECK (Area >= 0),
Population INTEGER CONSTRAINT CountryPop
CHECK (Population >= 0));
CREATE TABLE geo_River
(River VARCHAR(40) ,
Country VARCHAR(4) ,
Province VARCHAR(40) ,
CONSTRAINT GRiverKey PRIMARY KEY (Province ,Country, River) );
2条答案
按热度按时间gkn4icbw1#
你需要使用
distinct
内count
. 另外,如果不执行联接,则不需要在列之前提供表名。u91tlkcl2#
由于问题不太清楚,请提供输入和输出示例。
这毫无意义:
你需要计算河流流经的不同国家吗?你不能像一个国家有许多省份那样直接计算吗?
像这样的工作,
假设:sql=mysql。