Не совсем уверен, но есть теория, которая может быть совершенно неверной
Ваш запрос меня немного смущает, поскольку он предполагает некоторую группировку, поскольку в теории хотя бы механизм SPARQL не должен позволять вам выбирать как переменную, так и агрегат для этой переменной в одном и том же запросе без явного указания GROUP BY. Таким образом, результаты могут зависеть от того, какой движок SPARQL / триплетное хранилище вы используете?
Если речь идет о неявной группировке, вы можете не получить столько результатов, сколько ожидаете, поскольку группировка объединит результаты с обеих сторон объединения. Например, запрос 1 дает 10 результатов, а запрос 2 - 5 результатов, тогда максимальное количество результатов, которое вы можете получить от объединения, составляет 15, но может быть меньше, поскольку группировка может объединять результаты с двух сторон объединения. Чтобы избежать этого, вы должны использовать совершенно разные имена переменных по обе стороны запроса, например:
SELECT * WHERE { {?s ?p ?o} UNION {?x ?y ?z}}
Что даст вам таблицу результатов, которая будет иметь следующий вид:
?s | ?p | ?o | ?x | ?y | ?z
-----------------------------
a | b | c | | |
| | | a | b | c
Не уверен, что что-либо из этого актуально / полезно для вас, если вы можете предоставить более подробную информацию о среде, в которой вы выполняете запрос, например: Triplestore, механизм SPARQL, API / библиотека и т. Д., То я / кто-то другой сможет дать лучший ответ