gpt4 book ai didi

sql - 如何在新表中选择特定行?

转载 作者:行者123 更新时间:2023-12-03 19:16:09 25 4
gpt4 key购买 nike

我正在使用SQLite3。我有一个表MyTable,如下所示:

Create table mytable (ID as INTEGER, OrderID as INTEGER);

Insert into mytable (ID, OrderID) values (1, 1);
Insert into mytable (ID, OrderID) values (1, 2);
Insert into mytable (ID, OrderID) values (2, 1);
Insert into mytable (ID, OrderID) values (2, 3);
Insert into mytable (ID, OrderID) values (3, 1);


对于具有相同ID但不同OrderID的两行,例如(1,1)和(1,2),我们将它们称为重复行。

现在,我需要挑选出所有重复的行,并将它们放入名为MyDupTable的新表中。对于上述示例,MyDupTable应该包含:

(1, 1);
(1, 2);
(2, 1);
(2, 3);


因此,我使用以下语句:

Select * into MyDupTable from MyTable group by ID having Count(ID) > 1;


但是,sqlite给出了一条错误消息“语法错误”附近“进入”,为什么?

谢谢

最佳答案

您可以使用sub-query执行此操作,子查询将选择所有重复的ID,然后使用in选择表中的其余列并将其插入到新表中

insert into MyDupTable 
select * from mytable where ID in(
select ID from mytable
group by ID
having Count(*) > 1
)


您可以使用现有表创建表

CREATE TABLE MyDupTable AS 
select * from mytable where ID in(
select ID from mytable
group by ID
having Count(*) > 1
)


您的查询分析

Select * into MyDupTable from MyTable group by ID having Count(ID) > 1;


1.您已使用group by id但未从MyTable中找到任何选择列,选择中使用的列数必须在group by中使用


in sql lite insert table docs

关于sql - 如何在新表中选择特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52588796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com