0
我正在使用的工具無法呈現(生成圖表)信息,如果它包含更多的1000個數據點,所以假設如果我的MySQL查詢返回大約5000個數據點然後我必須通過取所有值的平均值將這5000個數據點轉換爲1000個點。這個轉換率5000/1000 = 5,我必須在運行時決定。有沒有什麼辦法可以根據數據大小和列名對數據進行分組/平均,而不僅僅是列名。MySql平均運行時間數據限制行數
在此先感謝
我正在使用的工具無法呈現(生成圖表)信息,如果它包含更多的1000個數據點,所以假設如果我的MySQL查詢返回大約5000個數據點然後我必須通過取所有值的平均值將這5000個數據點轉換爲1000個點。這個轉換率5000/1000 = 5,我必須在運行時決定。有沒有什麼辦法可以根據數據大小和列名對數據進行分組/平均,而不僅僅是列名。MySql平均運行時間數據限制行數
在此先感謝
使用自動增量場
user113215說什麼(SELECT AVG(data) FROM ... GROUP BY rownum % 1000
)是有道理的,但如果有5050行會有50行是6行的平均排序每個,而另一個950將是平均每行5行。你想如何處理這種情況?將它們均勻分佈在5050/6行上?如果是的話,我建議你運行2個查詢,第一個就是一樣的東西:
SELECT SUM(*)/(CEIL(SUM(*))/1000) FROM YourTable
其中你在一個變量中存儲使用在接下來的查詢國防部輸出。
% 1000
的替代方法僅爲/ 5
,因此您可以改爲平均順序行。
您通常應該有一個表的自動遞增主鍵,這將使該解決方案足夠簡單。
自定義排序
我覺得this是你想要什麼。
您將如何減少/平均行集?理論上,你可以對每一行進行編號,然後用'SELECT AVG(data)FROM(...)GROUP BY rownum%1000'來包裝該查詢,以保證返回結果的數量永遠不會超過1000.這將使行1與行1001年,2001年,3001年,4001年和5001年...但這是否有道理?可能不會。 – user113215
或者你也可以創建一個過程,以5個組爲單位遍歷5000行,並平均在1-5,6-10,11-15等之間。 – Cynical
我需要迭代超過5000次,然後在第一種情況下,我需要將所有這些動態查詢存儲到一些批/ curson /變量(我不知道哪一個是可能的),然後執行所有這些查詢和俱樂部結果,或者在第二種情況下,我將執行每個查詢並將結果處理爲遊標,然後將最終結果分發......但不幸的是,我對mysql並不熟悉,也不知道這兩種方式。查詢我正在使用「select id,avg(scenarioElapsedTimeInSec),avg(vuserCount)from(從select * from summaryvuserresult resultid = 1210 limit 5)datatable group by scenarioElapsedTimeInSec」 –