在group by子句中添加常量值列

Vic*_*tor 3 sql group-by netezza

Netezza sql在此查询上出错:原因:无效的列名称'dummy'.

 select col1,col2, '' as dummy, max(col3) from table1  group by col1,col2,dummy
Run Code Online (Sandbox Code Playgroud)

如果我从group by子句中删除虚拟,它工作正常.但是根据sql语法,我应该在group by中包含所有非聚合列.

Mar*_*shi 6

为什么你需要在你的组中,你可以使用聚合函数,其结果总是正确的,因为值是常量,例如:

select col1,col2, min(' ') as dummy, max(col3) from table1  group by col1,col2
Run Code Online (Sandbox Code Playgroud)


小智 6

“dummy”是静态列(不在表中),因此不需要在 group by 中,因为它是外部列。

SELECT col1,
       col2,
       cast(5 as int) AS [dummy],
       max(col3)
FROM test_1
GROUP BY col1,
         col2,
         col3,
        'dummy'
Run Code Online (Sandbox Code Playgroud)

该代码产生外部引用错误#164。

查看这些链接
http://www.sql-server-helper.com/error-messages/msg-164.aspx

http://www.sql-server-helper.com/error-messages/msg-1-500.aspx