1
테이블이 3 개 있습니다. 그들은 1 대 다 관계가 있습니다SQL 조건부 계산
table1 - mainID, Select00(bit), Select01(bit)
table2 - secID, mainID
table3 - secID, Num00, Num01
SELECT table1.mainID , SUM(table3.Num00) as S00, SUM(table3.Num01) as S01
FROM table1 INNER JOIN
table2 ON table1.mainID = table2.mainID INNER JOIN
table3 ON table2.secID = table3.secID
GROUP BY table1.mainID HAVING table1.mainID =11
다음 쿼리는 작동하지만 모든 합계를 제공합니다.
조건에 따라 SUM을 얻으려면 어떻게해야합니까?
S00 = SUM(table3.Num00) if table1.Select00 = 1 (true)
S01 = SUM(table3.Num01) if table1.Select01 = 1 (true)
큰 즉! 어떤 이점을 가지고 있든 어디에서 사용하고 있습니까? – user450143
그냥 습관. HAVING은 일반적으로 집계를 필터링하는 데 사용됩니다 (논리적으로 GROUP BY 다음에 오는 이유입니다). 예를 들어, HAVING SUM (...)> 10. 그룹화 전에 필터를 제거합니다. HAVING을 사용하는 것만 큼 효율적입니다 (오랫동안 지속되어 온 가정이 틀렸다는 것이 증명 되더라도 기쁠 것입니다). –