我有一个餐桌安排:

 pcode   city
 1       MAD
 3       MAD
 3       LON
 1       MAD
 2       LON
 3       MAD
 1       LON
 2       LON

我想要这个结果:
 pcode    cityMAD    cityLON
 1        2          1
 2        0          2
 3        2          1

我的意思是,我需要一个SELECT来“重塑”表格,计算每个pcode和城市的观测数。
这个表相当大(>100000 obs)。不同pcode的数量未知,但不同城市的数量很小,因此我可以在SELECT中包含城市的名称。

最佳答案

您可以运行以下查询:

SELECT pcode,
       SUM(city='MAD') as cityMAD,
       SUM(city='LON') as cityLON
FROM table
GROUP BY pcode

但之后需要手动创建所有所需的列。
也许您应该同时group bypcode,并使用透视表。
注意city在True时自动接收1,在False时自动接收0。

关于mysql - 选择使用mysql重塑表格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44632069/

10-14 15:24