2014-10-12 3 views
0

역의 대도시 카드에 관한 테이블이 있습니다. record(cid, enter_sid, exit_sid) 각 역의 출입 횟수를 확인하고 싶습니다. 예를 들어 ,쿼리 결과를 결합하는 방법은 무엇입니까?

cid enter_sid exit_sid 1 1 2 1 1 2 1 2 3 2 2 1

은 내가 select cid, count(*) from record group by enter_sidselect cid, count(*) from record group by exit_sid

CID를 결합하는 방법을 모른다

sid count(*) 
1   3 
2   4 
3   1 

이 카드의 ID를 의미 싶어. 예상 결과의 첫 번째 행에 대해 1은 스테이션 ID이고, 3은 sid에 대해 1 번이며 enter_sid에 2 번, exit_sid에 1 번 존재합니다.

+0

정확히'cid' 열은 무엇입니까? –

+0

예상 결과가 열 값 및 또는 개수와 어떻게 일치합니까? –

+0

이 경우 카드의 ID는별로 의미가 없습니다. – cow12331

답변

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

관련 문제