SQL分组错误

SQL分组错误,sql,Sql,我试图从sql查询中检索结果,该查询将重复的用户ID从表1返回到表3 下面是我的sql语句: INSERT INTO Table3(UserID, Name, Issue) SELECT t1.UserID, t1.Name, 'Duplicated userid found in Table1' FROM Table1 t1 GROUP BY t1.UserUD HAVING COUNT(*) > 1 但是,在尝试在数据源中运行后,我收到了以下错误:

我试图从sql查询中检索结果,该查询将重复的用户ID从表1返回到表3

下面是我的sql语句:

INSERT INTO Table3(UserID, Name, Issue) 
   SELECT t1.UserID, t1.Name, 'Duplicated userid found in Table1' 
   FROM Table1 t1 
   GROUP BY t1.UserUD  
   HAVING COUNT(*) > 1
但是,在尝试在数据源中运行后,我收到了以下错误:

列“Table1.Name”在select语句列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY中 条款

我能知道我的错在哪里吗

多谢各位

INSERT INTO Table3(UserID, Name, Issue) 
SELECT t1.UserID, t1.Name, 'Duplicated userid found in Table1' 
FROM Table1 t1 
GROUP BY t1.UserUD, t1.Name
HAVING COUNT(t1.UserID) > 1

您缺少group by中的字段

您需要根据select中不在聚合函数中的所有列进行分组,即,在您的情况下:

INSERT INTO Table3(UserID, Name, Issue)
SELECT t1.UserID, t1.Name, 'Duplicated userid found in Table1'
FROM Table1 t1 
GROUP BY t1.UserID, t1.Name
HAVING COUNT(*) > 1
甚至,如果您的姓名可能不重复:

INSERT INTO Table3(UserID, Name, Issue)
SELECT t1.UserID, MAX(t1.Name), 'Duplicated userid found in Table1'
FROM Table1 t1 
GROUP BY t1.UserID
HAVING COUNT(*) > 1
  • 由t1.userUD和not ID组成的组似乎可疑

  • 但是,非常确定您需要按t1.UserID、t1.Name进行分组。它不会改变查询的逻辑


  • 尝试类似“groupbyt1.UserUD,t1.Name”的方法,我认为您需要将t1.Name添加到groupby中