Почему я получаю дубликаты записей на моем выходе? - PullRequest
0 голосов
/ 23 февраля 2012

Итак, я написал 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.

1 Ответ

0 голосов
/ 23 февраля 2012

Это из-за вашего вложенного цикла.

используйте

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);
...