【问题标题】:Query For Insert From Select Query从选择查询中查询插入
【发布时间】:2016-08-26 02:45:58
【问题描述】:

我有一个名为tb_tweetkurator_test 的表,查询是:

SELECT id_user,
        COUNT(id_tweet) as JML_TWEET,
        COUNT(IF(url = 'yes', url, NULL)) as JML_TWEET_URL,
        COUNT(IF(mention = 'yes', mention, NULL)) as JML_TWEET_MENTION,
        COUNT(IF(retweet = 'yes', retweet, NULL)) as JML_TWEET_RETWEET,
        COUNT(IF(tweet_biasa = 'yes', tweet_biasa, NULL)) as JML_TWEET_BIASA
FROM tb_tweetkurator_test
GROUP BY id_user;

结果是

id_user   | JML_TWEET | JML_TWEET_URL| JML_TWEET_MENTION | JML_TWEET_RETWEET | ML_TWEET_BIASA

16912985  | 20        | 6            | 13                | 0                 | 3
23343960  | 10        | 10           | 0                 | 0                 | 0
46651600  | 20        | 9            | 17                |15                 | 2
267164011 | 20        | 14           |10                 |4

让我困惑的是,我可以将上面的数据(来自SELECT 查询)插入到新表中吗?

【问题讨论】:

  • 您使用的是哪个 DBMS?

标签: sql select create-table


【解决方案1】:

是的。您可以使用 create-as-select 从此结果集中创建一个新表:

CREATE TABLE new_table
SELECT id_user,
        COUNT(id_tweet) as JML_TWEET,
        COUNT(IF(url = 'yes', url, NULL)) as JML_TWEET_URL,
        COUNT(IF(mention = 'yes', mention, NULL)) as JML_TWEET_MENTION,
        COUNT(IF(retweet = 'yes', retweet, NULL)) as JML_TWEET_RETWEET,
        COUNT(IF(tweet_biasa = 'yes', tweet_biasa, NULL)) as JML_TWEET_BIASA
FROM tb_tweetkurator_test
GROUP BY id_user;

或将其插入到现有表中:

INSERT INTO new_table
SELECT id_user,
        COUNT(id_tweet) as JML_TWEET,
        COUNT(IF(url = 'yes', url, NULL)) as JML_TWEET_URL,
        COUNT(IF(mention = 'yes', mention, NULL)) as JML_TWEET_MENTION,
        COUNT(IF(retweet = 'yes', retweet, NULL)) as JML_TWEET_RETWEET,
        COUNT(IF(tweet_biasa = 'yes', tweet_biasa, NULL)) as JML_TWEET_BIASA
FROM tb_tweetkurator_test
GROUP BY id_user;

【讨论】:

    【解决方案2】:

    你可以这样select/into

    SELECT id_user,
            COUNT(id_tweet) as JML_TWEET,
            COUNT(IF(url = 'yes', url, NULL)) as JML_TWEET_URL,
            COUNT(IF(mention = 'yes', mention, NULL)) as JML_TWEET_MENTION,
            COUNT(IF(retweet = 'yes', retweet, NULL)) as JML_TWEET_RETWEET,
            COUNT(IF(tweet_biasa = 'yes', tweet_biasa, NULL)) as JML_TWEET_BIASA
    INTO your_new_table
    FROM tb_tweetkurator_test
    GROUP BY id_user;
    

    【讨论】:

      猜你喜欢
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2014-12-31
      • 2014-10-17
      • 2013-11-20
      • 2013-11-15
      相关资源
      最近更新 更多