【发布时间】:2021-10-09 20:32:43
【问题描述】:
我有两张包含 Covid-19 数据(死亡和病例)的表格。
案例
| date | region | age_group | sex | cases |
|---|---|---|---|---|
| data | data | data | data | data |
死亡
| date | region | age_group | sex | deaths |
|---|---|---|---|---|
| data | data | data | data | data |
我正在汇总数据以按地区获取每日病例和死亡人数,并尝试将其插入到一个具有四列(日期、地区、cases_per_day、deaths_per_day)的新表中。我尝试了以下方法来聚合和加入数据。
SELECT * FROM
((SELECT date, region, SUM(cases) AS cases_per_day
FROM dbo.COVID19BEl
GROUP BY date, region) sub
INNER JOIN
(SELECT date, region, SUM(deaths) AS deaths_per_day
FROM dbo.DEATHSBE
GROUP BY date, region) c
ON c.date = sub.date AND c.region = sub.region)
但它正在返回:
| date | region | cases_per_day | date | region | deaths_per_day |
|---|---|---|---|---|---|
| data | data | data | data | data | data |
想要的输出是:
| date | region | cases_per_day | deaths_per_day |
|---|---|---|---|
| data | data | data | data |
【问题讨论】:
-
尝试从以下位置删除日期和地区:(SELECT date, region, SUM(deaths) AS death_per_day
-
我已将此问题标记为“由拼写错误引起”,因为它是一个基本的 SQL 错误。
INNER JOIN包括两个表中的所有列。您正在使用SELECT *选择所有列。要从其中一张表中排除date和region列,您需要更改SELECT子句。SELECT sub.date, sub.region, cases_per_day, deaths_per_day FROM.... -
这是否回答了您的问题:How to remove duplicate columns from join in SQL?
-
是的,我是 SQL 新手。谢谢你的回答。
标签: sql sql-server group-by inner-join