我有这个表格方案:
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和城市的观察数量。
桌子很大(大约100,000英尺)。不同pcode的数量未知,但不同城市的数量很少,因此我可以在SELECT
中包含城市的名称。
答案 0 :(得分:2)
您可以构建如下查询:
select pcode,
sum(case when city = 'MAD' then 1 ELSE 0 END) as cityMAD,
sum(case when city = 'LON' then 1 ELSE 0 END) as cityLON
from table_name
group by pcode;
您需要为每个城市添加sum
,例如我为cityMAD和cityLON添加广告。
答案 1 :(得分:1)
您可以运行以下查询:
SELECT pcode,
SUM(city='MAD') as cityMAD,
SUM(city='LON') as cityLON
FROM table
GROUP BY pcode
但是您需要手动创建所有需要的列。
也许您应该group by
同时pcode
和city
,并使用数据透视表。
请注意SUM
在True时收到1,在False时自动收到0。