如何结合查询结果?

时间:2014-10-12 03:22:47

标签: mysql

我有一张关于车站地铁卡输入和记录的表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_sidselect cid, count(*) from record group by exit_sid

cid表示卡的ID。 对于我预期结果的第一行,1表示站点的id,3表示在enter_sid中存在2次的sid 1,在exit_sid中存在1次。

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

Working Fiddle