SQL交叉表基于两列

时间:2017-04-14 11:08:58

标签: mysql sql

我想在MySQL中基于表中的两列创建交叉表。一个是公交车的证据编号:称为“boczny”(列中没有重复)和车道数:“linia”。我尝试将“linia”列转换为行,并计算在给定通道上看到证据总线的频率。

Acutualy我有这个,但仍然mising枢轴表(交叉表)。

请帮忙。

SELECT boczny, MIN(linia)
FROM  vehicles
GROUP BY boczny

enter image description here

1 个答案:

答案 0 :(得分:1)

执行此操作的典型方法是使用条件聚合:

SELECT v.boczny,
       SUM(v.linia = 1) as linia_1,
       SUM(v.linia = 2) as linia_2
FROM vehicles v
GROUP BY v.boczny;

或者,您可以将每个linia放在一个单独的行中:

SELECT v.boczny, v.linia, COUNT(*)
FROM vehicles v 
GROUP BY v.boczny, v.linia;