SQL分组错误
我试图从sql查询中检索结果,该查询将重复的用户ID从表1返回到表3 下面是我的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 但是,在尝试在数据源中运行后,我收到了以下错误:
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
尝试类似“groupbyt1.UserUD,t1.Name”的方法,我认为您需要将t1.Name添加到groupby中