2013-06-07 3 views
0

MySQL에서 나는 양의 정수로 가득 찬 열이있는 테이블을 가지고 있으며 모든 홀수 정수를 필터링하려고합니다. MySQL 문서에는 아무 것도없는 것처럼 보입니다. 나는 다음 쿼리를 시도했다.테이블에서 짝수 값 찾기 MySQL

select kapsule.owner_name, 
     kapsule.owner_domain, 
     count(xform_action) 
    from kapsule, rec_xform 
where rec_xform.g_conf_id=kapsule.g_conf_id 
    and (count(xform_action))%2=0 
group by kapsule.owner_name; 

count (xform_action)이 짝수 인 값만 유지하려고합니다. 표는 이렇게 보입니다. COUNT(*) 같은 집계 함수의

+0

다음을 시도해보십시오 : - kapsule.owner_name, kapsule.owner_domain, kapsule에서 count (xform_action), rec_xform을 선택하십시오. rec_xform.g_conf_id = kapsule.g_conf_id group by kapsule.owner_name (count (xform_action)) % 2 = 0; – Deepika

답변

0

를 참조하십시오. 절은 GROUP BY이 발생하기 전에 원본 행을 필터링하는 데 사용됩니다.

은 (그룹의 행의 수를 반환) 대신 COUNT()의 집계

SELECT k.owner_name, 
     k.owner_domain, 
     COUNT(x.xform_action) cnt -- < you probably meant to use SUM() instead of COUNT() here 
    FROM kapsule k JOIN rec_xform x -- < use JOIN notation for clarity 
    ON x.g_conf_id = k.g_conf_id 
GROUP BY k.owner_name 
HAVING cnt % 2 = 0 

당신은 아마 (그룹의 모든 행의 열의 합계 값) SUM()를 사용하는 의미보십시오

여기에 (모두 SUM()COUNT()에 대한) SQLFiddle 데모

입니다
+0

고마워, 효과가 있었다. –

0

GROUP BY을 사용하면 HAVING 절을 사용할 필요가

select kapsule.owner_name, kapsule.owner_domain, 
count(xform_action) from kapsule, rec_xform 
where rec_xform.g_conf_id=kapsule.g_conf_id and 
group by kapsule.owner_name, kapsule.owner_domain 
HAVING (count(xform_action))%2=0 

하거나 같은 별명 (예 : AS) 사용할 수 있습니다로보다 효율적으로 가입

select kapsule.owner_name, kapsule.owner_domain, 
count(xform_action) count_form from kapsule, rec_xform 
where rec_xform.g_conf_id=kapsule.g_conf_id and 
group by kapsule.owner_name, kapsule.owner_domain 
HAVING count_form%2=0 

을 그리고 당신은 사용할 수 있습니다 조인 테이블 중 오래된 테이블보다 당신이 필드를 기준으로 그룹이있는 경우 그리고 방법 으로 집계 함수 등으로 그룹에 있어야하기 전에 :

select kapsule.owner_name, kapsule.owner_domain, 
count(xform_action) count_form from kapsule A 
INNER JOIN rec_xform B 
ON A.g_conf_id=B.g_conf_id and 
GROUP BY by A.owner_name, A.owner_domain 
HAVING count_form%2=0 

당신이 HAVING 절을 사용할 필요가 GROUP BY 후 결과 집합을 필터링하려면 예 here

관련 문제