질문 : 각 국가별로보고 된 사례 중 사망 한 사람의 비율을 찾습니다.테이블 조인 - SQL SERVER로 집계 찾기
데이터는 두 가지 경우에 해당하며 사망합니다. 두 테이블 모두에 국가 열이 있습니다. 사망자는 없다. 죽음의 테이블에서 죽음. 사례는보고 된 사례이며 사례 테이블에 있습니다. 다음 쿼리와
,SELECT (sum(isnull(d.deaths,0))/sum(isnull(c.cases,0)))*100
FROM cases as c
JOIN death as d ON c.country=d.country
임 답변
0.54493487236178.
==
별도로 집계하고 평균을 받고, 나는 다음과 같은 평균을 얻고있다.
SELECT sum(cases) FROM cases
(동일 엑셀) 값은 값이 716,111
(716111/106036635)*100= 0.675343008.
두 값이 다르다 올 방법
인 106,036,635
SELECT sum(deaths) FROM death
있다!
==
는 또한
SELECT c.country, (sum(d.deaths)/sum(c.cases))*100
FROM cases as c
JOIN death as d ON c.country1=d.country1 AND c.cases IS NOT NULL AND d.deaths IS NOT NULL
GROUP BY c.country
나에게 Divide by zero error encountered.
을주고있다! 나는 초보자이기 때문에 코드가 꽤 추하고 오래 있다는 것을 이해합니다. Plz 도와주세요 ..
여기에 몇 가지 문제가 있습니다. 첫째로, 우리는 실제로 어떤 일이 일어나고 있는지를 볼 수 없다는 것입니다.하지만 첫 번째 계산의 제수에서 ISNULL (xx, 0)을가집니다. 즉, 사례 합계가 null 인 경우 0으로 나누려고 시도합니다. 두 번째 문제는 기본 쿼리에 조인이 포함되어 있고 온 전성 검사 쿼리가 계산을 수행하기 때문에 쿼리에서 값을 가져 오는 쿼리와 같지 않다는 것입니다 아니. –
@SeanLange에게이 문제를 조사해 주셔서 감사합니다. 문제는 "IS NULL"을 제거하면 같은 것을 얻게된다는 것입니다 .54493487236178! 나는 '0으로 나누기 오류가 발생했습니다.'라는 피하기 위해 "IS NULL"을 넣었습니다. 지금 나는 내가 느끼는 곳이 아니다 : ( – ajufsd
그들은 길을 함께 넣어서 제로 문제에 의한 분열을 피할 수 없을 것이다. 케이스의 모든 행이 널이면 고려해 보라. (당신은 실제로 같은 이름의 테이블과 컬럼을 가지고 있는가?) 모두 NULL이면 0으로 나누기 오류가 발생합니다. –