如何將這兩個SQL查詢合併爲一個查詢以獲得更高的速度和效率?合併多個SQL查詢以提高效率
SELECT price FROM table LIMIT 30
SELECT AVG(price) as avg FROM table
如何將這兩個SQL查詢合併爲一個查詢以獲得更高的速度和效率?合併多個SQL查詢以提高效率
SELECT price FROM table LIMIT 30
SELECT AVG(price) as avg FROM table
它不會更快或更有效的,但我可以看到它的需求(如試圖將值比較平均),這樣的事情:
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條記錄,你可以使用交叉連接。
SELECT price, B.mavg
FROM table
CROSS JOIN (SELECT AVG(price) as mavg FROM table) B
LIMIT 30
嘗試此查詢 SELECT價格,AVG(價格)爲平均從表限制30
這裏的每一行都將複製的平均價格,但你會得到你在一個查詢想要什麼。
其實,你只會得到一個隨機價格;每次結果都將是一行。 – Uueerdo
試試這個:select price,avgs from table,(select avg(price)as avgs from table)as tx; – challengerLPF
我不完全確定你想在這裏優化什麼......查詢運行緩慢嗎,還是你只是想做一些過早的微型優化? – Siyual
你會如何建議「結合」他們?一個是價格清單,另一個是這些價格的平均值。你想如何分組或顯示這些信息? – Dresden
@Siyual我有大約2000萬行的數據,並希望一切都儘可能快 –