代码之家  ›  专栏  ›  技术社区  ›  richo

选择id_field,其中max(date_field)<“some date”

  •  1
  • richo  · 技术社区  · 16 年前

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

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

    SELECT id_field WHERE max(date_field) < 'some date'
    

    但得到“在where字段中不能有聚合”。我曾经考虑过,我可以选择在某个日期之上没有日期的地方,但此时我的大脑正在挥舞着它的小白旗。

    谢谢。

    3 回复  |  直到 16 年前
        1
  •  2
  •   Paulo Santos    16 年前
    SELECT id_field 
      FROM tbl 
     GROUP BY id_field 
    HAVING max(date_field) < 'some date' 
    
        2
  •  4
  •   dcp    16 年前
    SELECT id_field
         , max(date_field)
      FROM tbl
    GROUP BY id_field
    HAVING max(date_field) < 'some date'
    
        3
  •  0
  •   Michael Bray    12 年前

    使用 HAVING 而不是 WHERE . 就像分组值的位置。