2013-05-16 119 views
0

我有一個包含3000個屬性表(其數據挖掘實驗) 表看起來像的多個選擇MAX屬性

id attr1 attr2, attr3 
a 0   1  0 
a 1   0  0 
a 0   0  0 
a 0   0  1 

我希望有它的格式

id, attr1, attr2, attr3 
a  1  1  1 

值只能是0或1,所以,我認爲只是獲得每個列的最大值並將其分組爲ID將達到此 但是,我不希望爲每個屬性鍵入MAX(attr X) 有沒有人知道即時通訊的快速方式plementing這

非常感謝您的幫助提前

回答

0

您必須使用一些聚合函數,以便使用它們不在組語句屬性。所以沒有更快的方法。

3

這是group by很容易:

select id, max(attr1) as attr1, max(attr2) as attr2, max(attr3) as attr3 
from t 
group by id 

如果你不想做這一切的打字,把你列的列表在Excel中。加入公式如=" max("&A1&") as "&A1&","。然後複製單元格並將結果複製到您的查詢所在的位置。

你也可以做到這一點的SQL,喜歡的東西:

select '  max('||column_name||') as '||column_name||',' 
from INFORMATION_SCHEMA.columns c 
where table_name = <your table name here> and column_name like 'attr%' 

當你做這些最後兩個,記得從最後一行刪除最後一個逗號。

+0

+1爲Excel查詢..它非常有用:D – Stephan

+0

嗨戈登,它從來沒有發生過我的excel方法。這將節省我的時間。非常感謝你 –