2014-02-24 22 views
1

我有一個數據表作爲什麼是聚合函數在數據透視表的必要性

id id_1 id_2 
1 C1 0 
1 C2 0 
1 C3 0 
1 C4 1 
2 C1 0 
2 C2 0 
2 C3 0 
2 C4 0 
3 C4 0 

我使用數據透視表打印數據

select * 
from 
(
    select Id, id_1,id_2 
    from table1 
) x 
pivot 
(
    sum(id_2) 
    for id_1 in ([C1], [C2], [C3], [C4]) 
) p 

問題:什麼因爲所有值都不相同,所以在不需要時使用聚合函數(在這種情況下爲sum)的必要性。如果我刪除聚合函數,然後它會產生一個錯誤(這是我沒有undestanding點)

SQL Fiddle

感謝

回答

0

這裏所有的值是不同的,但Oracle不在解析時知道這一點。聚合需要確保沒有重複。

是的,他們可能可以在運行時執行此檢查,並在發現重複項時引發異常,但似乎並非如此。