2014-04-08 1 views
0

지금까지 내가 가지고 밴드가 있었다 번호 사람의 총량을 표시 카운트를 사용하려고 안녕 :계수는 번호 1 개의

SELECT cds.cd_id,cds.position,bands.band_name 
FROM cds 
INNER JOIN releases 
INNER join bands 
ON cds.cd_id =releases.cd_id and releases.band_id = bands.band_id 
Where band_name IS NOT NULL AND position = 1; 

SELECT bands.band_name, COUNT(band_name) AS Total FROM bands 
WHERE band_name ='Prodigy'; 

이 위치와 함께 테이블을 조인합니다 당신은 프로디지 2 개 번호 1 위치를 가지고하는의해야 내 계산 만이 가진 보여줍니다 볼 수 있고 내가 가정으로 cd_id 및 band_name는 밴드 '프로디지는'

cd020 1 Prodigy 
cd021 1 Prodigy 
cd024 1 Kylie Minogue 
cd028 1 Kylie Minogue 
cd031 1 Kylie Minogue 
cd049 1 Kylie Minogue 
cd065 1 Robbie Williams 
cd068 1 Robbie Williams 
cd070 1 Robbie Williams 

을했다 얼마나 많은 수 사람 카운트 수를 사용 band_name이 t보다는 오히려 나타나는 횟수를 세는 것이 가장 쉬운 방법 일 것입니다 그는 각 밴드의 위치 수. 당신이 줄 수있는 조언이나 조언은 매우 유용 할 것입니다.

+0

어떤 테이블에 위치 필드가 들어 있습니까? –

+0

위치 필드가 cds 테이블에 있고 cd_id가 cds 및 bands 테이블에 있고 band_name이 밴드 테이블에 있습니다 – user3004630

답변

0

집계 쿼리에는 GROUP BY 문이 필요합니다. 그래서 같이 :

SELECT bands.band_name, COUNT(band_name) AS Total FROM bands 
WHERE band_name ='Prodigy' 
GROUP BY bands.band_name; 

당신의 결과를 얻으려면, 다음과 같은 내용을 사용한다 :

SELECT 
    bands.band_name, 
    COUNT(*) 
FROM 
    cds 
     INNER JOIN 
    releases ON (cds.cd_id =releases.cd_id) 
     INNER JOIN 
    bands ON (releases.band_id = bands.band_id) 
WHERE 
    bands.band_name IS NOT NULL 
    AND cds.position = 1 
GROUP BY bands.band_name; 
+0

파생 테이블의 목적은 무엇입니까? –

+0

@DanBracuk, 그건 좋은 질문입니다. 다시 한번 살펴보면 실제로 필요한 것은 아닙니다. 편집 할 수 있습니다. – patsweet

+0

이것은 또한 당신에게 감사합니다 :) – user3004630

0

이 당신을 위해 작동합니다.

SELECT cds.position, bands.band_name, COUNT(cds.cd_id) as COUNT 
FROM cds 
    INNER JOIN releases 
    INNER join bands 
     ON cds.cd_id =releases.cd_id and releases.band_id = bands.band_id 
WHERE band_name IS NOT NULL AND position = 1 
GROUP BY bands.band_name, cds.position; 
+0

아 완벽하게 고맙다 작품 :) – user3004630