2010-12-22 2 views
1

이 쿼리를 결합해야합니다. 따라서 새 목록과 새로운 합계를 사용하여 개월 목록을 얻고, 새 사용자와 재 방문 사용자를 추적하기 위해 합계를 반환합니다. 나는 현재 아래의 두 가지 질문을 가지고있다. 첫 번째 장치는 새로운 장치 (감지 주파수)를 계산하고 두 번째 장치는 반환하는 것으로 계산합니다. 나는 결과를 출력하여 매월 행이있는 테이블을 만든 다음 New 및 Returning 데이터가있는 두 개의 열로 구성합니다.이 MySQL 쿼리를 결합하십시오.

SELECT COUNT(DISTINCT (mac)) AS new, 
EXTRACT(MONTH FROM date_time) AS month 
FROM detected_devices 
WHERE client_id = 11 
AND venue_id = 1 
AND detection_frequency = 1 
GROUP BY month 

UNION ALL 

SELECT COUNT(DISTINCT (mac)) AS returning, 
EXTRACT(MONTH FROM date_time) AS month 
FROM detected_devices 
WHERE client_id = 11 
AND venue_id = 1 
AND detection_frequency > 1 
GROUP BY month 

주변을 둘러 보았지만 별칭으로이 작업을 수행하는 방법에 대한 정보를 찾을 수 없었습니다.

답변

0

어떨까요?

SELECT t1.month, t1.new, t2.returning FROM (query 1) as t1, (query 2) as t2 where t1.month = t2.month; 

(또는 선호하는 방식에 따라 참여)

+0

슈퍼 별칭을 사용하는 방법의 아이디어를 줄 것이다. 고마워요! 두통을 해결했습니다. – ajay87

0

이것은 단지 당신에게 두 개의 열이 하나 개의 행을 제공하지만, 당신이

SELECT 
A.new, 
B.returning 
FROM 
(SELECT COUNT(DISTINCT (mac)) AS new, 
EXTRACT(MONTH FROM date_time) AS month 
FROM detected_devices 
WHERE client_id = 11 
AND venue_id = 1 
AND detection_frequency = 1 
GROUP BY month) A, 
(SELECT COUNT(DISTINCT (mac)) AS returning, 
EXTRACT(MONTH FROM date_time) AS month 
FROM detected_devices 
WHERE client_id = 11 
AND venue_id = 1 
AND detection_frequency > 1 
GROUP BY month) B 
관련 문제