J'ai la requête MySQL suivante.
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
cela fonctionne comme je le souhaite, il compte chaque occurrence de chaque genre et les regroupe par nom de lieu. Mais lorsque j'essaie de la joindre à une autre table
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
les valeurs sont complètement faussées, renvoyant des milliers au lieu des dizaines et centaines attendues.
I pensez à Je comprends le problème, la table supplémentaire augmente le nombre de lignes. Je ne suis pas sûr de savoir comment le résoudre ou si c'est bien là le problème.