我只想添加两个我一直在使用此查询的SQL Server表列:
SELECT
sessionnumber, sessioncount, timespent,
SUM(sessioncount+timespent) as cnt
into d3
from clusters
order by sessionnumber
但问题是它给我的错误如下:
Msg 8120,Level 16,State 1,Line 1
列'clusters.sessionnumber'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
我一直在努力克服这个问题,但我没有成功!任何人都可以提前帮助我!
答案 0 :(得分:5)
如果您有一个汇总函数,例如SUM
(或MIN
,MAX
,AVG
,COUNT
),列表中的所有其他列SELECT
中的列必须位于GROUP BY
子句中:
SELECT
sessionnumber, sessioncount, timespent,
SUM(sessioncount+timespent) as cnt
INTO d3
FROM clusters
GROUP BY
sessionnumber, sessioncount, timespent
ORDER BY
sessionnumber
因此,您基本上按这三列(sessionnumber, sessioncount, timespent
)对数据进行“分组”,总结每个组的sessioncount + timespent
值,然后将这些值插入新的{ {1}}表
答案 1 :(得分:2)
无需使用sum()
,它总计了一列。试试这个:
SELECT sessionnumber,sessioncount,timespent, (sessioncount+timespent) as cnt
into d3
from clusters
order by sessionnumber