Ссылка на свойство недопустима в списке выбора, поскольку она не содержится ни в статистической функции, ни в предложении GROUP BY - PullRequest
0 голосов
/ 22 октября 2018

Azure Cosmos Document DB выдает ошибку при выполнении запроса, подобного этому -

SELECT DISTINCT VALUE 
{ 
    DocumentName: c.Name, 
    Count: COUNT(c.id),
    Target: c.Target
}
FROM c where c.Target != null

Ошибка -

SC2102: ссылка на свойство "c.Name" недопустима всписок выбора, потому что он не содержится ни в статистической функции, ни в предложении GROUP BY

SC2102: Ссылка на свойство 'c.Target' недопустима в списке выбора, поскольку не содержится ни в статистической функции, ни вПредложение GROUP BY

В обычном SQL я решил бы это, добавив

GROUP BY c.Name, c.Target

в конце запроса, но Cosmos DB, похоже, не поддерживает групповое предложение.

SC1001: Синтаксическая ошибка, неправильный синтаксис рядом с 'GROUP'.

Мне интересно, поддерживается ли предложение, подобное GROUP.И если это не поддерживается, что означает эта ошибка?

1 Ответ

0 голосов
/ 23 октября 2018

На основе обратной связи azure cosmos db , group by в настоящее время находится в активной разработке и будет отправлено КАК МОЖНО СКОРЕЕ.

Сейчас вы можете обратиться к SO потоку Группировка по полю в DocumentDB , что очень полезно для вас.Ответ написал библиотеку documentdb-lumenize , основанную на Document Db хранимой процедуре , которую вы можете попробовать.

Если вы действительно относитесь к RU, конечно, вы можетеМетрика RU потребление хранимой процедуры.

Вы можете вызвать метод executeStoredProcedure в Cosmos DB SDK, а затем использовать метод getRequestCharge().Не будет отображаться на портале.

Например, код Java:

StoredProcedureResponse resourceResponse = documentClient.executeStoredProcedure("dbs/db/colls/item/sprocs/b",requestOptions ,null);
System.out.println(resourceResponse.getRequestCharge());
...