列在HAVING子句中无效,因为它不是在聚合函数或GROUP BY

问题描述:

我试图让我的柱使用具有等于过滤器包含的,但问题是,它给出了这样的错误消息:列在HAVING子句中无效,因为它不是在聚合函数或GROUP BY

column is invalid in the HAVING clause because it is not contained in either an aggregate function or the GROUP BY 

,当我尝试添加过滤器的选择和组由它说:

Column names in each view or function must be unique 

,因为无论是列和过滤器是相同的:

列:

 userTable.userid 

过滤器:

user_filter.userid 

这里是我的代码:

SELECT DISTINCT 
userId, 
username, 
sum(userItem) 
from userTable inner join user_filter 
on userTable.userName = user_filter.userName 
group by userId, 
username, 
having userTable.userId = user_filter.userId 
+2

编辑您的问题并包含生成错误的查询。 –

+0

好吧,我会添加查询 – abdu

+0

你究竟在努力实现什么?当两个表都有'userid'时,为什么你用'username'加入?为什么userfilter在用户名已经在'usertable'中时有'username'? –

你不需要Having条款添加另一过滤器Where条款

SELECT userid, 
     username, 
     Sum(useritem) 
FROM usertable 
     INNER JOIN user_filter 
       ON usertable.username = user_filter.username 
        AND usertable.userid = user_filter.userid 
GROUP BY userid, 
      username 

也是DISTINCT是多余的,因为Group by用于select