我正在尝试为家庭作业写一个查询,但有一个查询特别是我遇到了麻烦。我遇到麻烦的那个人应该得到各种形式的政府 从一张桌子,然后得到有多少国家有这种形式的政府的计数。 我明白我必须使用count函数,但我不明白我会怎么做 每次提到政府时加1。而且,独立年的事也让我感到困惑。以下是查询的确切定义
生成所有政府形式的清单,数量为多少 国家有这种形式的政府。另外,列出最新的 任何一个国家独立于这种形式的年份 政府。应通过减少计数来排序结果。
这是我尝试的代码,以及我尝试的表
SELECT government_form, COUNT(government_form) AS count, indep_year
FROM what.country
ORDER BY count DESC
以下是我正在使用的表格
Table "what.country"
Column | Type | Modifiers
-----------------+-----------------------+--------------------------------------
country_code | character(3) | not null default ''::bpchar
name | character varying(52) | not null default ''::character varying
continent | continent | not null
region | character varying(26) | not null default ''::character varying
surface_area | real | not null default 0::real
indep_year | smallint |
population | integer | not null default 0
life_expectancy | real |
gnp | real |
gnp_old | real |
local_name | character varying(45) | not null default ''::character varying
government_form | character varying(45) | not null default ''::character varying
答案 0 :(得分:2)
生成所有政府形式的清单,数量为多少 国家有这种形式的政府。另外,列出最新的 任何一个国家独立于这种形式的年份 政府。应通过减少计数来排序结果。
首先让我们理解部分问题
计算有多少国家拥有这种政府形式
表示我们需要GROUP BY
government_form
,然后在COUNT
上应用countries
最近一年,任何国家都以这种形式独立 政府
表示我们需要在MAX
indep_year
government_form
因此查询是
SELECT government_form, COUNT(countries) AS count, MAX(indep_year)
FROM what.country
GROUP BY government_form
ORDER BY count DESC