我想基于表中的两列在MySQL中创建交叉表。一个是公交车的证据编号:称为“ boczny”(此列中没有重复),车道编号:“ linia”。我尝试将“ linia”列转换为行,并计算在给定车道上看到公交车的频率。
我确实有这个,但仍然错失了数据透视表(交叉表)。
请帮忙。
SELECT boczny, MIN(linia)
FROM vehicles
GROUP BY boczny
最佳答案
一种典型的方法是使用条件聚合:
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/