2013-07-22 3 views
0

두 가지 쿼리가 있습니다. 하나는 :연합 두 쿼리 PostgreSQL

select driver_id,count(*) as minors from zendesk_tickets 
where city = 'Los Angeles' 
and (tags like '%la_driver_quality_inefficientroute%' 
or tags like '%la_driver_quality_attitude%' 
or tags like '%la_driver_quality_dirtycar%' 
or tags like '%la_driver_quality_hygiene%' 
or tags like '%la_driver_quality_wronguser%' 
or tags like '%la_driver_quality_starttripearly%' 
or tags like '%la_driver_quality_arrivingearly%' 
or tags like '%la_driver_quality_didnotanswer%' 
or tags like '%la_driver_quality_nodoor%' 
or tags like '%la_driver_quality_cigarettes%' 
or tags like '%la_driver_quality_startstop%' 
or tags like '%la_driver_quality_arguing%' 
or tags like '%la_driver_quality_refusedestination%' 
or tags like '%la_driver_quality_onphoneontrip%' 
) 
and driver_id is not null 
group by driver_id 
order by minors desc 

출력한다 :

driver_id  minors 
1234   2 
1243   3 
etc   etc 

그리고 다른 쿼리 :

select driver_id,count(*) as majors from zendesk_tickets 
where city = 'Los Angeles' 
and (tags like '%la_driver_quality_acceptcash%' 
or tags like '%la_driver_quality_solicitingclient%' 
or tags like '%la_driver_quality_majordisrespect%' 
or tags like '%la_driver_quality_physicalaltercation%' 
or tags like '%la_driver_quality_sexualharassment%' 
or tags like '%la_driver_quality_majordrivingviolation%' 
or tags like '%la_driver_quality_dui%' 
or tags like '%la_driver_quality_usingaccount%' 
or tags like '%la_driver_quality_expiredinfo%' 
) 
and driver_id is not null 
group by driver_id 
order by majors desc 

출력 : 나는이 두 가지 (왼쪽 조인하려고

driver_id  majors 
1234   1 
1243   2 
etc   etc 

) 여전히 드라이버 ID 만 반환합니다. 첫 번째 검색어 (미성년자)에있는 나는 본질적으로 이러한 쿼리를 통합하고 싶지만 union 함수는 내 querybuilder에서 작동하지 않습니다.

당신이 외부를 사용할 필요가
driver_id  minors  majors 
1234   1   3 
1243   2   4 
etc   etc   etc. 
+0

"whyn I를 물론

select min.driver_id, majors, minors from ( select driver_id,count(*) as minors from zendesk_tickets where city = 'Los Angeles' and (tags like '%la_driver_quality_inefficientroute%' or tags like '%la_driver_quality_attitude%' or tags like '%la_driver_quality_dirtycar%' or tags like '%la_driver_quality_hygiene%' or tags like '%la_driver_quality_wronguser%' or tags like '%la_driver_quality_starttripearly%' or tags like '%la_driver_quality_arrivingearly%' or tags like '%la_driver_quality_didnotanswer%' or tags like '%la_driver_quality_nodoor%' or tags like '%la_driver_quality_cigarettes%' or tags like '%la_driver_quality_startstop%' or tags like '%la_driver_quality_arguing%' or tags like '%la_driver_quality_refusedestination%' or tags like '%la_driver_quality_onphoneontrip%' ) and driver_id is not null group by driver_id order by minors desc ) as min left outer join ( select driver_id,count(*) as majors from zendesk_tickets where city = 'Los Angeles' and (tags like '%la_driver_quality_acceptcash%' or tags like '%la_driver_quality_solicitingclient%' or tags like '%la_driver_quality_majordisrespect%' or tags like '%la_driver_quality_physicalaltercation%' or tags like '%la_driver_quality_sexualharassment%' or tags like '%la_driver_quality_majordrivingviolation%' or tags like '%la_driver_quality_dui%' or tags like '%la_driver_quality_usingaccount%' or tags like '%la_driver_quality_expiredinfo%' ) and driver_id is not null group by driver_id order by majors desc ) as maj on (min.driver_id=maj.driver_id); 

, 당신이 당신의 하위 쿼리 또는이 쿼리를 정리하는 몇 가지 다른 방법에 대한보기를 만들 것입니다 실제로 :

이 같은 시도 이 두 사람과 합류하려고 ... "어떻게? 결합 된 검색어를 표시하십시오. 또한, 어떤 "쿼리 빌더"를 사용하고 있습니까? –

+1

"union"은 설명하는 것과 다른 것입니다. – pstanton

답변

1

가입 :이 두 쿼리의 구조를 개선하고 하나 개의 테이블에 미성년자와 전공의 모든 데이터를 반환하는 방법에 대한 모든 제안은 출력 것이다.

this document for details을 참조하십시오. ...

0
select data.driver_id, sum(data.minor), sum(data.major) 
from (
    select driver_id, 
     case when 
      tags like '%la_driver_quality_inefficientroute%' 
      or tags like '%la_driver_quality_attitude%' 
      or tags like '%la_driver_quality_dirtycar%' 
      or tags like '%la_driver_quality_hygiene%' 
      or tags like '%la_driver_quality_wronguser%' 
      or tags like '%la_driver_quality_starttripearly%' 
      or tags like '%la_driver_quality_arrivingearly%' 
      or tags like '%la_driver_quality_didnotanswer%' 
      or tags like '%la_driver_quality_nodoor%' 
      or tags like '%la_driver_quality_cigarettes%' 
      or tags like '%la_driver_quality_startstop%' 
      or tags like '%la_driver_quality_arguing%' 
      or tags like '%la_driver_quality_refusedestination%' 
      or tags like '%la_driver_quality_onphoneontrip%' then 1 else 0 end minor, 
     case when 
      tags like '%la_driver_quality_acceptcash%' 
      or tags like '%la_driver_quality_solicitingclient%' 
      or tags like '%la_driver_quality_majordisrespect%' 
      or tags like '%la_driver_quality_physicalaltercation%' 
      or tags like '%la_driver_quality_sexualharassment%' 
      or tags like '%la_driver_quality_majordrivingviolation%' 
      or tags like '%la_driver_quality_dui%' 
      or tags like '%la_driver_quality_usingaccount%' 
      or tags like '%la_driver_quality_expiredinfo%'then 1 else 0 end major 
    from zendesk_tickets 
    where city = 'Los Angeles' 
    and driver_id is not null) data 
group by data.driver_id