6

这是我的小提琴

我正在尝试将数据从旧表导入到新表。在旧表中有很多没有重复。在新表中,我只能插入 DISTINCT 电子邮件。我无法插入相同的名称。这是我的代码。

CREATE TABLE table_old(name VARCHAR(255), email VARCHAR(255));

INSERT INTO table_old (name, email) VALUES ('tom', 'tom@gmail.com'),
                                           ('peter', 'peter@gmail.com'),
                                           ('hitler', 'hitler@gmail.com'),
                                           ('haasan', 'haasan@gmail.com'),
                                           ('arun', 'arun@gmail.com'),
                                           ('tom', 'tom@gmail.com'),
                                           ('peter', 'peter@gmail.com'),
                                           ('hitler', 'hitler@gmail.com'),
                                           ('haasan', 'haasan@gmail.com'),
                                           ('arun', 'arun@gmail.com');

CREATE TABLE table_new AS (SELECT DISTINCT email FROM table_old );

所以请告诉我如何将名称插入到 table_new 中关于电子邮件列名称。

4

3 回答 3

2

我想这就是你所追求的:

CREATE TABLE table_new AS (SELECT name, email FROM table_old GROUP BY name, email);
于 2013-02-22T10:00:37.137 回答
2

您可以使用以下查询。

CREATE TABLE table_new AS (SELECT DISTINCT * FROM table_old );

于 2013-02-22T10:09:42.950 回答
1

其中一些取决于您希望如何选择保留的名称。它可能很简单:

CREATE TABLE table_new AS (SELECT email, max(name) FROM table_old group by email);

如果您有更复杂的规则来确定选择哪个名称,则需要以不同的方式实施。

于 2013-02-22T10:01:20.560 回答