【发布时间】:2019-12-05 15:47:52
【问题描述】:
我有这个表数据结构(PostgreSQL顺便说一句,只需将一些记录粘贴到excel中即可显示):
我需要像这样聚合结果:
我的“进入”条件是高速公路 98、英里 94 和南路或高速公路 55、英里 214 和东路。
我的“离开”条件是98号高速公路,北路或55号高速公路,214英里和西路,必须输入!
我的做法:
SELECT plate, highway FROM (
SELECT DISTINCT plate, highway FROM plates
WHERE plate IN (
SELECT DISTINCT plate FROM plates
WHERE (
rodovia = 98 AND way = 'South' AND miles = 94 OR
rodovia = 55 AND miles = 214 AND way = 'East'
) GROUP BY plate
) AND (
highway = 98 AND way = 'North' OR highway = 55 AND miles = 214 AND way = 'West'
) GROUP by plate, highway
) t GROUP BY plate, highway
但是我不知道如何将“进入”和“离开”分组在同一行,也不知道查询是否正确
有人吗?
【问题讨论】:
-
我对你的结果感到困惑。我看不出与您提供的数据的关系。
-
是的,我知道,就像我说我不知道该怎么做
-
你能解释一下逻辑吗?你的问题看起来很有趣。我猜你需要一个递归 CTE 来根据你的逻辑走图。
-
@TheImpaler 是的,我有一张大桌子,上面有很多在高速公路上行驶的车牌。我需要根据我之前提到的条件对这些盘子进行分组。 “进入”条件是当这个车牌进入我需要的高速公路的某个部分时,所以“离开”
标签: sql postgresql pivot