Mysql 消除创建临时表的额外步骤

Mysql 消除创建临时表的额外步骤,mysql,sql,Mysql,Sql,我有一个查询是用createtemporarytable作为SELECT执行的,因为我一生都不知道如何将它作为一个查询来编写,希望有人能告诉我如何消除createtemporarytable作为SELECT 我的数据: 监控表: 日期| ip | webid | userid | compid SQL 创建临时表temp AS 从监视器中选择webid、userid、COUNT(ip)作为总计、COUNT(DISTINCT ip)作为uniq 按webid、userid分组 从temp中选

我有一个查询是用createtemporarytable作为SELECT执行的,因为我一生都不知道如何将它作为一个查询来编写,希望有人能告诉我如何消除createtemporarytable作为SELECT

我的数据:

监控表:

日期| ip | webid | userid | compid

SQL


创建临时表temp AS
从监视器中选择webid、userid、COUNT(ip)作为总计、COUNT(DISTINCT ip)作为uniq
按webid、userid分组

从temp中选择SUM(总计)、SUM(uniq);

在对total/uniq进行分组后,这两个求和是我真正需要的,但正如前面提到的,我想取消创建表的步骤


提前感谢您的帮助。

您可以使用派生表:

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

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

您可以使用派生表:

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
(我在临时表的定义中添加了一个
,因为它不存在)