如何选择最大值和其他字段

时间:2014-05-01 05:03:20

标签: max aggregate

我想获得最大日期值(例如,只是2014年的结果),但如果我从group_by中删除water_type,则会出现错误,而字段不属于聚合。

示例:

此查询:

SELECT Location_Code, water_type, max(Sampled_Date_Time) as maxdate
FROM [LChem1_Chemistry] lc1
where Location_Code = 'mb340'
and water_type is not null
group by Location_Code, water_type

得到这个:

Location_Code   water_type        maxdate
MB340           Group2           2013-09-27 14:00:00
MB340           SubGroup2        2014-03-04 00:00:00

但是我只想要2014年的结果(但是在结果表中保留water_type。

感谢

实际上这是输入数据的一个更好的例子:

Location_Code   water_type  maxdate
MB117          Group2           2/07/2012 12:58
MB331          Group2          28/02/2013 0:00
MB340          Group2          27/09/2013 14:00
MB340          SubGroup2    4/03/2014 0:00
MB117          Group2           3/07/2012 12:58
MB331          Group2           28/05/2013 0:00

我想要第5,7行和第5行结果表中有2个。

2 个答案:

答案 0 :(得分:0)

如果您尝试此查询该怎么办:

SELECT Location_Code, water_type, Sampled_Date_Time
FROM [LChem1_Chemistry] lc1
WHERE Location_Code = 'mb340'
AND water_type is not null
ORDER BY Sampled_Date_Time DESC
LIMIT 1

答案 1 :(得分:0)

您是否只需要一行或仅来自2014年的行

如果它只是2014年的行,那么您可以添加where子句。

如果你只想要顶行,那么你可以有一个内部查询来返回你想要的water_type,并在outer_query中使用它只返回一行