我正在做作业,并且我有一个有几列的表格。我感兴趣的两个是Type
和Easting
列。
我正在尝试使用查询从Easting
列中返回最大值,并向我展示该值在Type
列中的含义。
我正在使用Microsoft Access进行作业。
这是我到目前为止的内容,但是它返回所有值,而不是最大值
SELECT Type, Location,MAX(Easting)
FROM CrimeData
GROUP BY Easting, Location, Type
任何帮助都会很棒。
答案 0 :(得分:2)
您需要获取最大Easting
值(使用子查询),然后选择所有具有该值的记录,例如:
select c.type, c.location, c.easting
from crimedata c
where c.easting = (select max(t.easting) from crimedata t)
使用group by
子句的解决方案将仅为Easting
子句中的字段所保存的每个值组合中的记录提供最大group by
值。
答案 1 :(得分:0)
您必须对所有输出列进行分组,但汇总列(MAX)除外。
SELECT Type, Location, MAX(Easting)
FROM CrimeData
GROUP BY Type, Location
分组时,可以在使用WHERE子句进行分组之前过滤原始数据,而在使用Haven子句进行分组之后可以过滤分组的数据。例如
SELECT Type, Location, MAX(Easting)
FROM CrimeData
WHERE Type > 1
GROUP BY Type, Location
HAVING MAX(Easting) < 10
答案 2 :(得分:-1)
尝试一下:
SELECT Type, Location, MAX(Easting)
FROM CrimeData
GROUP BY Location, Type
HAVING Easting = MAX(Easting)
或更简单:
SELECT Type, Location, Easting
FROM CrimeData
where Easting = (select max(Easting) from CrimeData)
在函数中使用的列(在您的情况下为MAX)不应属于group by语句。 希望这可以清除它,否则我可以解释更多;)