2016-03-03 134 views
1

我想获取最大值的相应字段。所以我想展示在该区域犯罪率最高的实际紧急情况。Mysql查询最大值对应字段

这是我试过的。林不知道我是否正确使用案例。

SELECT b.boroughName, 
     actualOffence(CASE WHEN MAX(c.crimeCount)), (c.crimeCount) 
    FROM FYP_Borough b 
     JOIN FYP_Crime c 
      ON b.boroughID=c.boroughID 
     JOIN FYP_Offence o 
      ON c.offenceID=o.offenceID 
GROUP BY b.boroughName 
+0

什么是'actualOffence'列?一个函数? –

+0

是它的一列 – armze3

回答

0

你必须得到每boroughname最大crimeCount子查询,然后相应地join。如果我正确理解你的数据结构,这应该工作:

SELECT b.boroughName, 
    o.actualOffence, 
    c.crimeCount 
FROM (SELECT b2.boroughID, b2.boroughname, max(c2.crimecount) maxcrimecount 
     FROM FYP_Borough b2 
      JOIN FYP_Crime c2 ON b2.boroughID=c2.boroughID 
     GROUP BY b2.boroughID, b2.boroughName 
    ) b JOIN FYP_Crime c ON b.boroughID=c.boroughID AND b.maxcrimecount = c.crimecount 
     JOIN FYP_Offence o ON c.offenceID=o.offenceID 
+0

它说''on子句'中的未知列'b.boroughID' – armze3

+0

@ armze3 - 我在5分钟前编辑了我的答案 - 你是否尝试更新?我最初离开子列查询列,但注意到我发布答案后... – sgeddes

+0

是的,现在的工作,谢谢你 – armze3