2012-01-13 2 views
0
에 두 개의 쿼리를 결합

내 데이터베이스 테이블은 네 개의 열이 : 쿼리 1을 실행 한 후는 MySQL의

src_ip video_id vlan_id area  

query1= "SELECT area, count(*), count(DISTINCT video_id) FROM video_2 WHERE date_pl >= '2011-11-29 00:00' AND date_pl <= '2011-12-05 23:55' GROUP BY area" 
query2= "SELECT area, count(*) as distinctCount FROM (SELECT DISTINCT src_ip, vlan_id, area FROM video_2 WHERE date_pl >= '2011-11-29 00:00' AND date_pl <= '2011-12-05 23:55') distinctVideos GROUP BY area" 

을, 결과는 다음과 같습니다

AREA # of Total requests # of Distinct video 
area1 1234     433 
area2 3456     234 
... 

쿼리 2를 실행 한 후, 결과는 다음과 같습니다

AREA # of users 
area1 23 
area2 34 
area3 56 
... 

그러나이 두 쿼리를 하나의 데이터로 합치는 방법으로 하나의 데이터 세트에서 결과를 얻을 수 있습니다 :

AREA total requests # of distinct video # of users 
area1 1234    433     23 
... 

그런 다음 결과를 정렬하는 방법은 "총 요청 수"또는 "사용자 수"에 따라 오름차순 또는 오름차순입니다. 쿼리에서 "ORDER BY"를 추가 할 위치는 어디입니까?

감사합니다.

답변

0

내가 누락 된 것이 아닌지 잘 모르겠지만 필요한 항목은 다음과 같습니다.

SELECT * FROM (SELECT area, count(*) as total_requests, count(DISTINCT video_id) as total_videos, count(DISTINCT src_ip) as total_users 
FROM video_2 
WHERE date_pl >= '2011-11-29 00:00' AND date_pl <= '2011-12-05 23:55' 
GROUP BY area) as a ORDER BY total_requests 

외부 선택 없이도 작업을 수행 할 수 있습니다. 부품 수만큼 부품 수를 입력하십시오.