DB2 SQL Group by语句

时间:2013-08-24 11:10:41

标签: db2 cognos

我正在使用 IBM Cognos Framework Manager 创建报告,在此报告中我们需要隔离最后一行,但这不是我的问题。我正在尝试使用GROUP BY子句来实现它,并且无论我做什么,它总会抛出错误。

表名为THESIS_ADVISER,包含以下列:

THESIS_ID
FACULTY_ID
START_SY
START_TERM

为什么我的group by子句不起作用?

Select * 
From SAMPLE.THESIS_ADVISER THESIS_ADVISER
Group by 
    THESIS_ADVISER.THESIS_ID
  

生成错误:   RQP-DEF-0177执行操作'sqlPrepareWithOptions'state =' - 9'时发生错误。   UDA-SQL-0107在“准备”操作期间发生了一般异常。   [IBM] [CLI驱动程序] [DB2 / NT] SQL0119N在GROUP BY子句中未指定SELECT子句,HAVING子句或ORDER BY子句中指定的以“THESIS_ID”开头的表达式,或者它在SELECT子句中,HAVING子句,或具有列函数且没有GROUP BY子句的ORDER BY子句。 SQLSTATE = 42803

2 个答案:

答案 0 :(得分:1)

错误消息说明了一切:您必须在SELECT列表中拥有GROUP BY子句中所有相同的列,并且可能是某些聚合函数。

答案 1 :(得分:1)

GROUP BY子句查找一组要分组的列,以便在一个或多个剩余列上执行某些聚合函数。例如,如果要为给定部门中的给定用户选择最新交易日期,那么您将执行MAX(交易日期)...... GROUP BY员工,部门

如果我理解正确,您试图将属于某些THESIS_ID的行保持在一起。如果是这种情况,请对THESIS_ID使用ORDER BY子句。祝你好运。