MS Access版本Python melt

MS Access version of a Python melt

假设 table 这样组织:

Row |  School | LocationCode2011 |  LocationCode2012 | LocationCode2013 

001      ABC        1000A                1000B                2000X
002      DEF        2000A                2000B                4000X

打算改成这样:

Row |  School |    Location        | Value

001      ABC    LocationCode2011     1000A
001      ABC    LocationCode2012     1000B
001      ABC    LocationCode2013     2000X
002      DEF    LocationCode2011     2000A
002      DEF    LocationCode2012     2000B
002      DEF    LocationCode2013     4000X

Python 是我的首选语言,但我需要在 MS Access 中实现。在 Python 我会做

df2 = df.melt(id_vars=["Row","School"], value_vars=["LocationCode2011", "LocationCode2012", "LocationCode2013""], var_name="Location",val_name="Value")

并接收存储在 df2 中的新 table。到目前为止,我已经在 Access 中查找有关 "melting" 的文档,但我不知道 Transform 是否正是我所需要的。

在 Access 中,可以使用 UNION 查询将数据重新排列为规范化结构。

SELECT Row, School, LocationCode2011 AS Value, "LocationCode2011" AS Location FROM tablename
UNION SELECT Row, School, LocationCode2012, "LocationCode2012" FROM tablename
UNION SELECT Row, School, LocationCode2013, "LocationCode2013" FROM tablename;

第一 SELECT 行定义数据类型和字段名称。有 50 SELECT 行的限制。

然后,如果您希望它提交到新的 table,请将此查询用作 SELECT INTO 操作的源 SQL,或者如果 table 已经存在,则 INSERT SELECT行动。