gpt4 book ai didi

mysql - 使用pivot重构表中的数据并处理空值

转载 作者:行者123 更新时间:2023-11-29 22:42:41 24 4
gpt4 key购买 nike

我有一个包含 3 列的表。该表存储特定日期的国家/地区人口。简单的例子,

cen_date country      population 
2010 US 50
2010 Ger 10
2010 UK 5
2011 US 55
2011 Ger 15
2011 UK 10
2011 China 100

我想做的是有一个如下表,

       2010      2011
US 50 55
Ger 10 15
UK 5 10
China NULL 100

所以您会注意到 2010 年没有中国的数据,但我仍然希望将其包含在上表中,但为 NULL。

更新

通过一些尝试和错误,下面的查询现在可以工作了

select * 
from
(
select country, cen_date , population
from Country_Pop
) org
pivot
(
max(population)
for cen_date in ([2009-01-01], [2010-01-01], [2011-01-01])
) piv;

但不完全确定为什么会这样。我想我必须首先创建一个不同国家/地区的列表,但猜测它一定与 max 和 hub 函数有关?

最佳答案

步骤1.查找不同年份的总数。(按照您想要的顺序排列年份。如果找到新的一年,则添加一列)

第2步。找到所有不同的国家/地区名称。(只需将它们设为行,如果找到新国家/地区则添加行,否则未找到)

第3步.现在填写数据

关于mysql - 使用pivot重构表中的数据并处理空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com