代码之家  ›  专栏  ›  技术社区  ›  Nikhil Girraj

属性引用在选择列表中无效,因为它不包含在聚合函数或group by子句中

  •  1
  • Nikhil Girraj  · 技术社区  · 6 年前

    Azure Cosmos文档数据库在执行这样的查询时引发错误-

    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似乎不支持group子句。

    SC1001:语法错误,在“group”附近有语法错误。

    我想知道是否支持类组子句。如果不支持,那么这个错误的含义是什么?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jay Gong    6 年前

    基于 azure cosmos db feedback , group by 目前正在开发中,将尽快发货。

    现在,您可以参考so线程 Grouping by a field in DocumentDB 这对你很有帮助。答案写了一个图书馆 documentdb-lumenize 基于 Document Db stored procedure 你可以试试。

    如果您确实关心RUS,那么当然可以度量存储过程的RUS消耗量。

    你可以打电话 executeStoredProcedure 方法,然后使用 getRequestCharge() 方法。它不会显示在门户中。

    例如Java代码:

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

    希望对你有帮助。

    推荐文章