2016-08-30 3 views
1

join 함수를 사용하여 'stay'및 'pet'테이블 두 개에서 데이터를 가져옵니다. 반환 된 데이터에서 'cat'이 발생하는 시간을 어떻게 계산할 수 있는지 궁금합니다.mysql에서 join 함수를 사용하여 특정 데이터가 발생하는 횟수를 카운트

SELECT pet.petID, pet.species 
from stay 
inner join pet 
on (stay.petID = pet.petID) 



petID Species 
    8 Cat 
    8 Cat 
    8 Cat 
    9 Cat 
    11 Cat 
    12 Cat 
    12 Cat 
    14 Cat 
    39 Dog 
    39 Dog 
    40 Dog 
    41 Dog 
+0

당신이'추가하면 WHERE 쿼리의 끝에 종 = 'cat'' 다음을 답은 반환되는 행의 수와 같습니다. – Strawberry

+0

MySQL의 count() 함수를 확인하십시오. – Shadow

답변

1

이 쿼리는 트릭을 수행해야합니다

SELECT COUNT(*) 
FROM stay 
INNER JOIN pet 
    ON stay.petID = pet.petID 
WHERE pet.species = 'Cat' 

그러나 무엇 것 더 흥미로운 (그리고 아마도 더 유용) 모든 동물 유형의 수를 표시하는 결과 집합이 될 것이다 당신이 경우 당신이 시도 할 수 있습니다 :

SELECT pet.species, 
     COUNT(*) AS petCount 
FROM stay 
INNER JOIN pet 
    ON stay.petID = pet.petID 
GROUP BY pet.species 
0

SELECT pet.petID이 no_of_species로 (pet.species)을 계산, 숙박 내부 에서 pet.species 애완 동물 012 가입 추가하여 pet.species

0

에 의해 (stay.petID = pet.petID) 그룹에 3,516,만 WHERE species = 'cat'

SELECT COUNT(*) 
from stay 
inner join pet 
    on (stay.petID = pet.petID) 
where pet.species = 'Cat' 
관련 문제