添加两列SQL Server错误

时间:2013-08-04 07:05:35

标签: sql sql-server-2008 sum

我只想添加两个我一直在使用此查询的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子句中。

我一直在努力克服这个问题,但我没有成功!任何人都可以提前帮助我!

2 个答案:

答案 0 :(得分:5)

如果您有一个汇总函数,例如SUM(或MINMAXAVGCOUNT),列表中的所有其他列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