테이블 nobel (yr, subject, winner)이 있다고합시다.SQL에서 값의 출현을 카운트
그 해의 화학상 수, 그 해의 물리상 수의 란, 그 해의 결과를 얻고 싶습니다.
어떻게 하시겠습니까?
SELECT yr, count(subject='Physics'), count(subject='Chemistry') FROM nobel GROUP BY yr
이 작동하지 않습니다.
테이블 nobel (yr, subject, winner)이 있다고합시다.SQL에서 값의 출현을 카운트
그 해의 화학상 수, 그 해의 물리상 수의 란, 그 해의 결과를 얻고 싶습니다.
어떻게 하시겠습니까?
SELECT yr, count(subject='Physics'), count(subject='Chemistry') FROM nobel GROUP BY yr
이 작동하지 않습니다.
조건부가 0 또는 1 값을 반환하고 count
이 NULL이 아닌 값을 계산하기 때문에 쿼리가 작동하지 않습니다. sum
대신 count
의를 사용하여
시도 : 그런데
SELECT yr, sum(subject='Physics'), sum(subject='Chemistry')
FROM nobel
GROUP BY yr
는 모든 데이터베이스는 정수로 조건식을 취급합니다. 표준 구문은 다음과 같습니다
select yr, sum(case when subject = 'Physics' then 1 else 0 end) as NumPhysics,
sum(case when subject = 'Chemistry' then 1 else 0 end) as NumChemistry
from nobel
group by yr
또한 수행하여 여러 행에서 동일한 정보를 얻을 수 있습니다 :
select yr, subject, count(*)
from Nobel
where subject in ('Physics', 'Chemistry')
group by yr, subject
감사합니다. – LucasSeveryn
을 의지하지이 작품?
select yr, subject, count(*) awards
from nobel
where subject in ('physics', 'chemistry')
group by yr, subject
그것은 내가 원하던 것이 아니지만 어쩌면 문구가 내 질문에 맞지 않을 것입니다. 저는 그 해 화학 보너스 수와 그 해의 물리학 상 수를 원했습니다. – LucasSeveryn
쿼리를 실행할 때 무엇을 얻고 있습니까? –
해당 연도의 총 상금 수 2 열 – LucasSeveryn