0

我只想添加两个我一直在使用此查询的 SQL Server 表列:

  SELECT 
      sessionnumber, sessioncount, timespent,
      SUM(sessioncount+timespent) as cnt 
  into d3 
  from clusters
  order by sessionnumber

但问题是它给了我这样的错误:

消息 8120,级别 16,状态 1,第 1
行列“clusters.sessionnumber”在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。

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

4

2 回答 2

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每个组的值,然后将这些值插入新d3

于 2013-08-04T07:09:58.060 回答
2

无需使用sum(),总计一列。试试这个:

 SELECT sessionnumber,sessioncount,timespent, (sessioncount+timespent) as cnt 
 into d3 
 from clusters
 order by sessionnumber
于 2013-08-04T07:09:17.710 回答