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 に答える