2012-08-03 3 views
1

가 나는 아래 쿼리가 계산 후 총 쿼리 수를 얻을 :MySQL은 : 그룹화 및

select count(*) c , id 
from hr 
where time >= '2011-11-8 00:00:00' and 
     time <= '2011-12-9 23:59:59' 
group by id 
having c>3; 

결과 목록 (최대 10,000 항목 언젠가) 매우 큰 수를, 나는 모든 나열하고 싶지 않아 왜냐하면 나는 단지 총 수를 얻길 원하기 때문이다. "select found_rows()"외에도 목록을 인쇄하지 않고 작업을 완료하기 위해 하나의 SQL 문장을 찾으려고합니다. (나는 Perl, PHP 또는 다른 API를 사용하지 않고 SQL 만 사용한다.)

어떤 생각?

미리 감사드립니다.

+0

을 다시 그냥 질문을 레코드를 계산하고 내가 필요로 대답! 단. –

답변

1

가 하위 쿼리에 싸서

SELECT COUNT(*) totalCount 
FROM 
(
    select count(*) c , id 
    from hr 
    where time >= '2011-11-8 00:00:00' and 
      time <= '2011-12-9 23:59:59' 
    group by id 
    having COUNT(*) > 3 
) x 
+0

당신이 옳습니다. 나는 sub select를 사용했으나 "x"가 필요하다는 것을 알지 못했다. 다시 한번 감사드립니다. – Yang

+0

'x'는 derieved 테이블의 별명입니다 :-) – Ambrose

0
SELECT COUNT(*) FROM (SELECT id, COUNT(*) c FROM hr WHERE time >= '2011-11-8 00:00:00' AND time <= '2011-12-9 23:59:59' GROUP BY id) counts WHERE counts.c > 3;