合并多个SQL查询以提高效率

时间:2016-06-08 17:59:25

标签: mysql sql

如何将这两个SQL查询合并到一个查询中,以提高速度和效率?

SELECT price FROM table LIMIT 30
SELECT AVG(price) as avg FROM table

3 个答案:

答案 0 :(得分:0)

它不会更快或更有效,但我可以看到它的需求(例如尝试将值与平均值进行比较),如下所示:

SELECT t.value, avgSubQ.theAvg, t.value / avgSubQ.theAvg AS relativeToAvg
FROM table AS t
INNER JOIN (SELECT AVG(value) AS theAvg FROM table) AS avgSubQ
LIMIT 30;

答案 1 :(得分:0)

由于avg将生成1条记录,您可以使用交叉连接。

SELECT price, B.mavg 
FROM table 
CROSS JOIN (SELECT AVG(price) as mavg FROM table) B
LIMIT 30

答案 2 :(得分:0)

尝试此查询 SELECT price,avg(price)as avg from table LIMIT 30

此处每行都会复制平均价格,但您会在一个查询中获得所需内容。