我有一张关于车站地铁卡输入和记录的表record(cid, enter_sid, exit_sid)
我想得到每个车站进出的总数。
例如,
cid enter_sid exit_sid
1 1 2
1 1 2
1 2 3
2 2 1
我想要
sid count(*)
1 3
2 4
3 1
我不知道如何合并select cid, count(*) from record group by enter_sid
和select cid, count(*) from record group by exit_sid
cid表示卡的ID。 对于我预期结果的第一行,1表示站点的id,3表示在enter_sid中存在2次的sid 1,在exit_sid中存在1次。
答案 0 :(得分:2)
这方面的诀窍是你的输入和退出sid是第一列,所以你必须将这两个组合在一起以获得正确的组合...从那里它是一个简单的计数总和。
SELECT sid, cid, SUM(counting) FROM
(
SELECT cid, enter_sid as sid, COUNT(*) as counting FROM record GROUP BY enter_sid
UNION ALL
SELECT cid, exit_sid as sid, COUNT(*) as counting FROM record GROUP BY exit_sid
)t
GROUP BY sid