【发布时间】:2014-01-01 15:21:16
【问题描述】:
我有四个表:dw_location、dw_time、dw_crime 和 dw_crime_fact。
dw_location 包含 area_id 和 area_name 列。
dw_time 包含列 time_id 和 year。 dw_crime 包含 crime_type_id 和 crime_type_desc 列。
dw_crime_fact 包含列 report_id、no_of crimes、fk1_time_id 作为来自 dw_time 的 外键,fk2_area_id 作为外键 dw_location,fk3_crime_type_id 作为来自 dw_crime 的外键。 p>
我想要制作的报告之一是每年犯罪率最高的地区。
我有以下用于连接表格的代码,我正在努力选择犯罪次数最多的地区和年份。
我很确定我必须使用 GROUP BY 和 HAVING 语句,但不确定将它们放在哪里。
SELECT dw_time.year, dw_location.area_desc,
FROM dw_crime_fact
INNER JOIN dw_time ON dw_time.time_id=dw_crime_fact.fk1_time_id
INNER JOIN dw_location ON dw_location.area_id=dw_crime_fact.fk2_area_id
AND FK1_TIME_ID = '1'
上面的代码列出了 2009 年的地区列表。但我想选择犯罪率最高的地区。
【问题讨论】: