2013-03-05 3 views
0

에서 중복 된 항목의 수를 계산하는 방법 :나는 MySQL의 테이블에 두 개의 열이 열 MySQL의

BNAME과 나는 같은 것을 원하는

bname   count   
----------  ---------- 


Blah    2 

Blah    2 

huh    3 

lol    1 

huh    3 

huh    3 

계산합니다. 카운트 열을 만들었지 만 위의 예처럼 표시 할 수있는 방법을 모르겠습니다. count 열은 현재 비어 있습니다.

답변

5

당신은 고유 한 값을 기준으로 ...

select bname, count(*) 
from mytable 
group by bname 

이 그룹 행 좋은 오래된 그룹을 사용하고, 각 그룹의 행의 수를 제공한다.

당신이 너무 테이블에 저장하는 경우 :

UPDATE myTable updated 
JOIN (select bname, count(*) as cnt 
    from mytable 
    group by bname) aggregate 
    ON updated.bname= aggregate.bname 
set `count`= aggregate.cnt 

참고 역 따옴표, 난 당신이 여기

이 모든 행을 각각의 반복 횟수를 설정해야한다는 필요가 있다고 생각합니다. 쿼리를 실행하려면

SQL Fiddle here

+0

나는 이해하지 못한다. 당신이 준 것은 옳습니다. 저는 그것을 알고 있습니다. 고맙지 만 많은 가치가 없습니다. 값을 자동으로 입력하려고합니다. 새 이름이 bname에 들어 오면 나는 모든 카운트가 증가하기를 원합니다. :) –

+0

@MiteshMynee 지금 확인하십시오, 제대로 작동해야합니다. – ppeterka

+0

그게 남자 야! 당신은 GENIUS입니다! 고마워 ton \ m/Hey mods는 @ppeterka에게 골드 일괄 처리를 제공합니다 : D –

0

는 :

select bname, 
     (select count(*) from t t2 where t2.bname = t.bname) as cnt 
from t 

이렇게하면 각 행에 추가 열을 줄 것이다. 당신이 값을 작성하려면

, update를 사용

update t 
    set count = (select count(*) from t t2 where t2.bname = t.bname) 

이 실제로 카운트 테이블의 값을 변경합니다.

+0

t는 무엇이고 t2는 무엇입니까? –

+0

@MiteshMynee. . . 't'는 원래 테이블이고't2'는 테이블의 별명입니다. –

관련 문제