2011-09-19 55 views
3

我需要總結一個從現有查詢中獲得的結果。而且它具有擴展當前的查詢,並保持在一個查詢在單個查詢中總結MySQL中生成的列表

(我的意思不是 - DO 1,DO 2; DO3;)

我當前的查詢是:

SELECT SUM((count)/(SELECT COUNT(*) FROM mobile_site_statistics WHERE campaign_id='1201' AND start_time BETWEEN CURDATE()-1 AND CURDATE())*100) AS percentage FROM mobile_site_statistics WHERE device NOT LIKE '%Pingdom%' AND campaign_id='1201' AND start_time BETWEEN (CURDATE()-1) AND CURDATE() GROUP BY device ORDER BY 1 DESC LIMIT 10; 

這將返回:

+------------+ 
| percentage | 
+------------+ 
| 47.3813 | 
| 19.7940 | 
|  5.6672 | 
|  5.0801 | 
|  3.9603 | 
|  3.8500 | 
|  3.1294 | 
|  2.9924 | 
|  2.9398 | 
|  2.7136 | 
+------------+ 

我需要的總的那個表(前10設備的總百分比)是(這是所有),但它必須是一個查詢(必須包括初始查詢)(必須是單個查詢由於另一個程序使用查詢)

這可能嗎?我迄今嘗試過的每一種方式都失敗了。我們嘗試了臨時表,但是這變成了多個查詢。

+2

只是做一個'SELECT SUM(百分比)佔總FROM()了' – rabudde

+0

非常感謝你。這完全工作! – Gwynnie

+0

我回答了我的評論,所以如果適合您的話,您可以接受 – rabudde

回答

1

只是做一個

SELECT SUM(percentage) AS total FROM (<YOUR_QUERY>) a 

,並與您的初始查詢替換子查詢<YOUR_QUERY>