【问题标题】:cosmos cannot delete the duplicate uuidcosmos无法删除重复的uuid
【发布时间】:2021-11-06 06:48:54
【问题描述】:

您好,我发这条小消息是想知道是否可以删除

型号如下:

创建日志数据

{
    "publisherID": "",
    "managerID": "",
    "mediaID": "",
    "type": "",
    "ip": "",
    "userAgent": "",
    "playerRes": "",
    "title": "",
    "playerName": "",
    "videoTimeCode": 0,
    "geo": {
        "country": "",
        "region": "",
        "city": "",
        "ll": []
    },
    "date": "",
    "uuid": "",
    "id": ""
}

选择所有日志数据:SELECT * FROM a

[
    {
        "publisherID": "{ID}",
        "mediaID": "{ID}",
        "type": "Load",
        "ip": "67.69.69.41",
        "userAgent": "Mozilla/5.0 (Android 11; Mobile; rv:91.0) Gecko/91.0 Firefox/91.0",
        "parentReferrer": "link.com",
        "title": "title here",
        "playerName": "page",
        "videoTimeCode": 0,
        "geo": {
            "country": "CA",
            "region": "Ontario",
            "city": "Guelph",
            "ll": [
                43.5588,
                -80.3004
            ]
        }
    }
]

[SQL-QUERY]: 01 - 不起作用,因为总是有重复的 uuids

  1. 我想要所有类型为progress type: 'Progress'的请求
  2. 按日期按分钟整理进度type数据
SELECT COUNT(c.uuid) as total,
left(c.date,16) as time
FROM c
WHERE c.mediaID = '{ID}'
AND (c.date BETWEEN '2021-08-02T14:48:00.000Z' AND '2021-09-03T14:48:00.000Z')
GROUP BY c.uuid, left(c.date, 16)
[
    {
        "total": 9,
        "time": "2021-09-03T14:07"
    },
    {
        "total": 40,
        "time": "2021-09-02T12:51"
    },
    {
        "total": 51,
        "time": "2021-09-02T12:50"
    }
]

[SQL-QUERY]: 02 - 宇宙错误!

语法错误,“DISTINCT”附近的语法不正确。

SELECT COUNT(DISTINCT c.uuid) as total, left(c.date,16) as time
FROM c
WHERE c.mediaID = 'ckpwphqbj10852aav7ib0713o8'
AND (c.date BETWEEN '2021-08-02T14:48:00.000Z' AND '2021-09-03T14:48:00.000Z')
GROUP BY c.uuid, left(c.date, 16)

我想删除重复的 uuid,然后按日期对唯一的 uuid 进行分组

【问题讨论】:

  • 不能通过查询语言删除任何内容;您需要将 API(或特定语言的 Cosmos DB SDK)用于SELECT 以外的任何操作。您需要执行查询以查找重复的 UUID,然后选择要删除的文档。另外:所写的问题并没有真正显示重复 UUID 的示例。
  • 您最近的编辑删除了重要的格式并引入了不需要的标签([sql-server] 与 Cosmos DB 无关,[database] 是不需要的)。我修复了您的格式(包括使您的查询可读)。请注意这些事项。

标签: azure azure-cosmosdb azure-cosmosdb-sqlapi


【解决方案1】:

你在找这个吗?

计数distinctuuid:

SELECT COUNT(distinct c.uuid) as total, left(c.date,16) as time 
FROM c 
WHERE c.postID = '155478' 
AND (c.date BETWEEN '2021-08-02T14:48:00.000Z' AND '2021-09-03T14:48:00.000Z') 
GROUP BY left(c.date, 16)

【讨论】:

  • 这里不涉及删除主题(不能通过查询语言完成)。
猜你喜欢
  • 1970-01-01
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多