假设我有一张看起来像这样的表格:
Date ID ObjAge
3-20 1 27
3-21 2 32
3-22 1 17
3-22 1 18
3-22 2 3
3-23 1 15
3-23 3 14
对于每个唯一的日期,我想将该日期内的 ID 组合在一起,其中给定日期内每个 ID 的最大 ObjAge 大于 10。因此,我理想的输出表如下所示:
Date ID ObjAge
3-20 1 27
3-21 2 32
3-22 1 18
3-23 1 15
3-23 3 14
我的示例查询如下所示:
SELECT [Date], ID, ObjAge,
FROM table1
GROUP BY ID
HAVING MAX(ObjAge > 10);
使用单个日期时,我不会遇到此问题。问题是某一天的对象 ID 号在另一天也用于不同的对象 ID。目前我遇到了一个错误:
<块引用>[Date] 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。
答案 0 :(得分:0)
您需要将所有选定的列(聚合列除外)包含到 group by
中。它看起来像这样:
SELECT [Date], ID, MAX(ObjAge)
FROM table1
GROUP BY [Date],ID
HAVING MAX(ObjAge) > 10;
我相信对于你的情况,这也有效:
SELECT [Date], ID, MAX(ObjAge)
FROM table1
Where ObjAge > 10
GROUP BY [Date],ID;