Я все еще новичок в XQuery, но я почти вычислил этот запрос, но он должен просто вернуть proteinID и numberOfAuthors элемента большинству авторов, однако в настоящее время он возвращает все их, а не просто элемент с наибольшим числом авторов.
Мой запрос
for $i in doc("test.xml")/ProteinDatabase/ProteinEntry
let $author-count := count($i/reference/refinfo/authors)
let $proteinID := $i/@id
where $author-count = max($author-count)
order by $author-count descending
return ((<proteinID>{data($proteinID)}</proteinID>,
<numberOfAuthors>{data($author-count)}</numberOfAuthors>))
, который возвращает:
<proteinID>QRHUA4</proteinID>
<numberOfAuthors>47</numberOfAuthors>
<proteinID>PLHU</proteinID>
<numberOfAuthors>29</numberOfAuthors>
<proteinID>LPHUB</proteinID>
<numberOfAuthors>29</numberOfAuthors>
и т. д.
Что Я просто хочу вернуть это первый proteinID и самый высокий, который равен 47, как показано ниже:
<proteinID>QRHUA4</proteinID>
<numberOfAuthors>47</numberOfAuthors>
Я пробовал несколько вещей, например, мое утверждение where, которое там есть
where $author-count = max($author-count)
но, похоже, он на самом деле ничего не сделал. Я также попробовал некоторые позиционные вещи и выбрал только первый индекс, но, похоже, он возвращает только идентификатор QRHUA4, но не числоOfAuthors