2010-12-21 76 views
1

我正在一個超過100列的表上工作,其中很多都是布爾值,因爲我需要使用avg(variable_name :: int)來取每個布爾列的平均值。如何計算所有列的平均值?

現在,我想同時取所有列的平均值。我怎麼做 ?

非常感謝。

我會盡量做得更清楚: 我想要從A到ZZ的所有變量的所有平均值。其中一些是整數,一些是布爾值,這就是我爲布爾人所控制的唯一原因。

PK  A **** GZ *** ZZ 
-------------------------- 
1  T **** F *** T 
2  T **** F *** T 
3  F **** T *** T 
4  F **** F *** F 
5  T **** F *** T 
+1

聽起來像你應該規範你的數據庫。 :-( – 2010-12-21 21:05:08

+0

你能解釋一下嗎?謝謝;)我想我知道什麼是標準化,但我不明白爲什麼如果我規範化它將解決我的問題。我對此很新。 – joaoavf 2010-12-21 21:06:21

+0

基本上,沒有很多合理的理由來創建一個100列以上的表格,這很可能是因爲您複製了大量數據,在其他表格中會更好。 Google圍繞着「數據庫規範化」,「數據建模」等等。 – 2010-12-21 21:20:30

回答

2

有沒有真正的偷偷摸摸或棘手的方式來做到這一點。您可能可以使用數據字典構建動態查詢,但這並不推薦。

如果你真的需要100個不同列的平均值,你將不得不輸入avg() 100次。

但我同意上面的評論,可能你的數據庫會從一些標準化中受益匪淺。如果您有一堆名爲'Something ##`的列,其中##是一系列數字,那麼尤其如此。

2

也許我不明白你的問題。如果你從這樣的一個表開始:

 
PK  A 
-------- 
1  T 
2  T 
3  F 
4  F 
5  T 

你希望問什麼答案,「什麼是列A的平均值?」