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

我确实有这个,但仍然错失了数据透视表(交叉表)。

请帮忙。

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


mysql - 基于两列的SQL交叉表-LMLPHP

最佳答案

一种典型的方法是使用条件聚合:

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;

关于mysql - 基于两列的SQL交叉表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43410340/

10-13 05:48