Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择id\u字段,其中max(date\u字段)_Sql_Postgresql - Fatal编程技术网

Sql 选择id\u字段,其中max(date\u字段)

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

我相信这个问题是显而易见的,但在过去的一个小时左右,我一直在处理越来越复杂的子查询集,结果一无所获

我需要从表中选择一组ID,其中该记录的最后日期在给定日期之前。我试着:

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'