我的查询中有一列导致我的群组出现问题。如果我在组中包含该列,则会收到错误:" GROUP BY和WITH ... BY子句可能不包含聚合函数。"但如果我从GROUP中删除该列,我会得到#34;选定的非聚合值必须是关联组的一部分。"
我认为问题是因为当列没有聚合时,它使用的是聚合列。如果我在这个问题上是正确的,和/或我如何解决,请告诉我。
TIdHTTP
答案 0 :(得分:0)
无论如何,请勿使用列的位置进行聚合。
select userid,department,fullname,office,title,extension
, max (case rn when 1 then region else '' end)
|| max (case rn when 2 then ',' || region else '' end)
|| max (case rn when 3 then ',' || region else '' end)
|| max (case rn when 4 then ',' || region else '' end) as location
,max (case when region = 'West' and DEPARTMENT = 10 then 'West_10' end) as team
from (select e.*
,row_number() over
(
partition by userid,department,fullname,office,title,extension
order by regionname
) as rn
from employee
)
group by userid,department,fullname,office,title,extension
;