Sql 选择id\u字段,其中max(date\u字段)
我相信这个问题是显而易见的,但在过去的一个小时左右,我一直在处理越来越复杂的子查询集,结果一无所获 我需要从表中选择一组ID,其中该记录的最后日期在给定日期之前。我试着:Sql 选择id\u字段,其中max(date\u字段),sql,postgresql,Sql,Postgresql,我相信这个问题是显而易见的,但在过去的一个小时左右,我一直在处理越来越复杂的子查询集,结果一无所获 我需要从表中选择一组ID,其中该记录的最后日期在给定日期之前。我试着: SELECT id_field WHERE max(date_field) < 'some date' 但是获取“不能在where字段中有聚合”。我曾考虑过,我可以选择在某个日期以上没有日期的地方,但在这一点上,我的大脑正在挥舞着它的小白旗 谢谢。使用have代替WHERE。HAVING类似于分组值的where。使用H
SELECT id_field WHERE max(date_field) < 'some date'
但是获取“不能在where字段中有聚合”。我曾考虑过,我可以选择在某个日期以上没有日期的地方,但在这一点上,我的大脑正在挥舞着它的小白旗
谢谢。使用have代替WHERE。HAVING类似于分组值的where。使用HAVING代替where。HAVING类似于分组值的where。实际上,在HAVING子句中使用它不需要返回maxdate\u字段。这基本上是正确的,尽管大多数系统会抱怨您没有命名第二个字段,但根据OP的要求,它并没有达到要求。您实际上不需要返回maxdate_字段来在HAVING子句中使用它。这基本上是正确的,尽管大多数系统会抱怨您没有命名第二个字段,但是没有完全符合OP的要求。
SELECT id_field
, max(date_field)
FROM tbl
GROUP BY id_field
HAVING max(date_field) < 'some date'
SELECT id_field
FROM tbl
GROUP BY id_field
HAVING max(date_field) < 'some date'