2014-04-29 51 views
0

我想用group by by的方法在DB2中創建一個視圖。不確定SQL語句是否能夠創建這樣的視圖。DB2集合函數

數據:

TableId department item 
1   dept1   item1 
2   dept2   item1 
3   dept1   item1 
4   dept2   item1 

查看輸出:

department item  id 
dept1   item1 1,3 
dept2   item1 2,4 

我能夠按部門和項目,以創建一個視圖組,但不確定如何將表視圖結合起來。

尋求建議。

很多預先感謝。

+0

據我所知,有沒有DB2這種簡單的解決方案就像MYSQL一樣,它具有'GROUP_CONCAT()'功能,但我在這裏找到了一個解決方案:http://www.vertabelo.com/blog/group-concat。希望能幫助到你。 –

+0

這可以通過OLAP函數完成。 – AngocA

+0

你在哪個平臺上運行 - LUW vs iSeries vs z/OS?你打算用匯總的ID做什麼?請注意,大多數情況下,自動遞增ID的值應該沒有意義... –

回答

0

你可以用LISTAGG函數來做到這一點。請看看這篇文章,知道如何使用它:https://www.ibm.com/developerworks/community/blogs/SQLTips4DB2LUW/entry/listagg?lang=en

select department, listagg(TableId, ',') within group (order by TableId) as id 
from YourTable 
group by department; 

欲瞭解更多信息:http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0058709.html

您還可以使用XMLCAST + XMLGroup:https://www.ibm.com/developerworks/community/blogs/SQLTips4DB2LUW/entry/aggregating_strings42?lang=en

+0

LISTAGG是在9.7.x版中引入的。僅供參考。 – cbmeeks