【发布时间】:2015-07-01 23:14:29
【问题描述】:
我是学习 SQL 的新手,所以我提前道歉是我的问题很初级。
我要做的是显示一个列,告诉我在已区分的“old_country”和“young_country”组中,percent_aged_over_60 分别具有最高和最低值的国家/地区:
SELECT
CASE
WHEN percent_aged_over_60 >= 10 THEN "old_country"
WHEN percent_aged_over_60 < 10 THEN "young_country"
ELSE "error"
END AS "oldness",
COUNT(*)
FROM countries_by_population
GROUP BY oldness;
换句话说,我希望添加一个列来告诉我国家名称,MAX(percent_aged_over_60) 表示“old_country”,MIN(percent_aged_over_60) 表示“young_country”。
虽然我确信这最容易作为两个单独的查询来完成,但我想在同一个查询中执行此操作。
因此,我正在寻找产生三列的结果 - oldness、count(*) 和 country。
【问题讨论】:
-
如果你只是展示一个古老的国家和一个年轻的国家,
COUNT(*)是干什么用的? -
是的。也许每个人都做 MAX 会更容易