Как реализовать сложные операторы SQL в БД космоса, такие как JOIN IN и GROUP BY - PullRequest
1 голос
/ 11 марта 2020

У меня есть несколько предметов в базе данных Cosmos.

В коллекции Master:

{ "id": "12a8af32-c8df-41f8-a253-37c900199113", "BuildingAddr": "123", "province": "jiangsu", "city": "shanghai", "UnitNumber": "F8N7S777" }

В коллекции Callback:

{ "id": "818e6f3f-60fb-4c38-926f-296e410dfe19", "UnitNumber": "R2NT3670", "RequestTime": 1578542878, "status": 1, "StorageTime": 15785428456, }

Я пытался так:

SELECT Master.city, COUNT(Callback.id) AS errorNumber FROM Callback JOIN Master IN Callback.UnitNumber WHERE Callback.UnitNumber IN ("F8NKH287", "F8NKH288") AND Callback.status IN (1, 4, 5) AND Master.province = "jiangsu" GROUP BY call.city

Я хочу выбрать элементы в Callback, которые Callback.UnitNumber = Master.UnitNumber и Callback.UnitNumber в указанном UnitNumber, и Callback.status в данном статусе, а Master.province равняется данной провинции, затем группируется по Master.city. Слишком много нормальных SQL утверждений не работает в космосе, БД. Это вызывает у меня головную боль, и теперь я чувствую себя так отчаянно! Пожалуйста, помогите мне, спасибо!

1 Ответ

1 голос
/ 11 марта 2020

Cosmos DB не является реляционной базой данных и не поддерживает конструкции ANSI SQL, такие как объединения кросс-коллекций. Если вы новичок в этом типе базы данных, я рекомендую начать с этого набора документов, чтобы понять ключевые концепции проектирования хранилища данных № SQL.

Нет SQL vs Relational

Данные моделирования

Как моделировать и разбивать данные - пример из реальной жизни

Спасибо.

...