我有以下的MySQL查詢。MySQL計數性別實例
USE demo;
SELECT
loc.name,
sum(case cr_sex when 'F' then 1 else 0 end) as 'F#',
sum(case cr_sex when 'M' then 1 else 0 end) as 'M#'
FROM case_report_main as cr
JOIN location as loc on cr.cr_name = loc.name
GROUP BY loc.name
這是按照我想要的方式工作的,它計算每個性別的每個出現次數並按地點名稱對它進行分組。但是,當我嘗試用另一個表
USE demo;
SELECT
loc.name,
sum(case cr_sex when 'F' then 1 else 0 end) as 'F#',
sum(case cr_sex when 'M' then 1 else 0 end) as 'M#'
FROM case_report_main as cr
JOIN location as loc on cr.cr_name=loc.name
JOIN map_polygons as mp on mp.polygon_name=loc.name
GROUP BY loc.name
加入它的價值得到完全搞砸了,成千上萬的返回而不是預期的幾十上百個。
我認爲我明白這個問題,附加表增加了行數。我不知道如何解決這個問題,或者如果這實際上是問題。
是的,這似乎工作。謝謝! 我想我需要工作我對子查詢的理解。 Salamat kabayan。 – user1849239 2013-03-16 04:50:37
kabayan沒問題。這裏也是一篇關於加入的好文章,如果你需要的話。 [SQL連接的可視化表示](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html) – 2013-03-16 04:53:20