【问题标题】:Eliminating extra step of creating temp table消除创建临时表的额外步骤
【发布时间】:2012-05-30 19:04:36
【问题描述】:

我有一个使用 CREATE TEMPORARY TABLE AS SELECT 执行的查询,因为我一生都无法弄清楚如何将其编写为一个查询,希望有人能告诉我如何消除 CREATE TEMPORARY TABLE AS。

我的数据:

monitor table:<br> date | ip | webid | userid | compid

SQL

CREATE TEMPORARY TABLE temp AS SELECT webid, userid, COUNT(ip) AS total, COUNT(DISTINCT ip) AS uniq FROM monitor GROUP BY webid, userid;

选择 SUM(total), SUM(uniq) FROM temp;

total/uniq 分组后的两个总和是我真正需要的,但如前所述,我想省去创建表格的步骤。

提前感谢您的帮助。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您可以使用派生表:

    SELECT SUM(total), SUM(uniq) 
    FROM (  SELECT webid, userid, COUNT(ip) AS total, COUNT(DISTINCT ip) AS uniq 
            FROM `monitor table`
            GROUP BY webid, userid) AS A
    

    (我在您对临时表的定义中添加了FROM,因为它丢失了)

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      相关资源
      最近更新 更多