2012-02-22 94 views
0

因此,我編寫了一個XQuery來了解每個名稱在我的XML文檔中出現的次數。我可以得到結果,但每個名稱在輸出處重複。誰也看不出哪裏出了問題?非常感謝您的幫助。順便說一下,我正在使用IBM DB2。爲什麼我在輸出中獲取重複記錄?

代碼:

XQUERY 
for $tmp in db2-fn:xmlcolumn('STARMA.STARMA_XML') 
for $value in distinct-values($tmp//Star_Chef/Name) 
let $count := count($tmp//Star_Chef[Name eq $value]) 
order by $count descending 
return concat($value," ",$count); 

輸出:

Gary Lineker 6 
Gary Lineker 6 
Jamie Oliver 5 
Jamie Oliver 5 
Gordon Ramsey 4 
Amir Khan 4 
Gordon Ramsey 4 
Amir Khan 4 
Edwin Tye 3 
Megan Fox 3 
Edwin Tye 3 
Megan Fox 3 
Ellie Dee 2 
Ellie Dee 2 
Andy Lau 1 
Andy Lau 1 

    16 record(s) selected. 

回答

0

這是因爲你的嵌套循環。

使用

let $tmp := db2-fn:xmlcolumn('STARMA.STARMA_XML') 

或單一爲:

for $value in distinct-values(db2-fn:xmlcolumn('STARMA.STARMA_XML')) 
let $count := count($tmp//Star_Chef[Name eq $value]) 
order by $count descending 
return concat($value," ",$count); 
+0

放4位用於改善格式的每個代碼行。 – grtjn 2012-02-23 06:36:18

+0

這就好,現在感謝達蒙 – 2012-02-23 08:45:20