CREATE TABLE T1 (a int primary key, b int);
SELECT a, b FROM T1 GROUP BY a;
-Msg 8120级别16。在选择列表中,列'T1.b'无效,因为它既不包含在聚合函数中也不在GROUP BY子句中。
我本来希望这能起作用,因为列b显然是从属列,所以按a分组,b显然与按a分组相同。
我正在使用SQL Server 2016。
SELECT a, MAX(b) as b
FROM T1
GROUP BY a;
或将其包含在GROUP BY
中:
SELECT a, b
FROM T1
GROUP BY a, b;
而且我还要指出,在这种情况下,GROUP BY
是不必要的。我怀疑这是在适当的地方引用更复杂的查询。
逐字地..对group by子句中未提及的列使用适当的聚合函数