2012-02-22 11 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') 

OR単一:

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

+0

感謝しています。 –