1
我試圖爲表中的每一列生成統計信息。表中有多組數據,可以使用token
字段查詢。我現在想要編譯的統計數據很簡單:最大值,最小值和平均值。爲MySQL表中的每一列生成統計信息
我知道如何用一個非常強大的查詢來做到這一點,但我正在尋找更優雅的東西。這是我到目前爲止有:
SELECT
MAX(`A`),
MIN(`A`),
AVG(`A`)
FROM `table`
WHERE ...
這一工程,但我必須知道所有字段的提前,這使得查詢確實笨拙的。此外,當我真正想要的是每場有max,min和average per field的行時,它會返回一行數據。
Field Max Min Avg
A 4 1 2
B 10 8 9
C 12 1 3
我知道我需要一個查詢的for循環在字段列表功能等同,但是這超出目前我的MySQL的能力。任何幫助將不勝感激。
我的問題類似於這個:link。其中一條評論基本上要求我提出同樣的建議 - 一種在一個或多個表上運行這種查詢的方式,而不必提前知道域的數量。我意識到我可以運行一個查詢到describe
表和循環的結果,但是這感覺過於手動。也許這是最好的方式,但我想我應該問,以防我可以學習更好的方法。
你將不得不使用動態SQL來解決這個問題 - 這本質上是使用'describe',然後遍歷結果。有許多方法可以使這些代碼無需人工干預即可工作,但它仍然是代碼而不是單個查詢。 –
看到正常化 – Strawberry
我不知道你在說什麼草莓。我知道規範化意味着什麼,但不知道它如何適用於此。我不需要以任何方式改變數據。 – Anthony