2011-03-09 12 views
0

나는 클라이언트로부터 지불금을 수금하는 하나의 테이블을 가지고 있습니다. 나는 각 클라이언트에 대해 지불하는 상위 3 클라이언트로부터 얻고 싶습니다.같은 테이블에있는 MySQL 하위 쿼리

아래 쿼리는 하루 중 각 시간마다 각 클라이언트에 대한 총 지불액을받습니다.

SELECT 
    hour(received) as hr, 
    login, 
    count(*) as total 
FROM 
    payment 
WHERE 
    received >= date("2011-02-24") 
AND 
    received <date("2011-02-25") 
AND 
    PAYMENT_BATCH_FILE_ID is null 
GROUP BY 
    hr, 
    client_id 
ORDER BY 
    hr, 
    total DESC 

쿼리는 아래

SELECT 
    hour(received) as hr, 
    login, 
    count(*) as total 
FROM 
    payment 
WHERE 
    received >=date("2011-02-24") 
AND 
    received < date("2011-02-25") 
AND 
    PAYMENT_BATCH_FILE_ID is null 
AND 
    hour(received)="3" 
GROUP BY 
    hr, 
    client_id 
ORDER BY 
    hr, 
    total DESC 
LIMIT 3 

어떻게 상위 3 클라이언트를 얻을 수있는 두 쿼리를 결합하는

는 각 시간에 대한 지불을 시간에 각 클라이언트에 대해 최고 3 클라이언트를 얻을?

감사합니다.

+1

당신이 찾고있는 것을 잃어 버렸습니다 ... 당신은 하루에 최대 3 명의 클라이언트 또는 매시간을 원하십니까 (72 결과) 또는? 또한 일종의 "한 시간에 각 클라이언트의 최상위 클라이언트 3 개를 얻는 것"으로 인해 분실 되었습니까? – CarpeNoctumDC

+0

하루에 3 시간마다 3 명의 고객을 만나고 싶습니다. – muhdazmilug

답변