是否有直接函数来计算CosmosDb查询中的不同元素?
这是默认计数:
SELECT value count(c.id) FROM c
和无数的独特作品:
SELECT distinct c.id FROM c
但这会返回错误的请求-语法错误:
SELECT value count(distinct c.id) FROM c
会count
和distinct
他们一起工作吗?
这是另一个解决地区问题并适用于的查询count
。基本上,您需要封装不重复内容然后进行计数。我们已经通过分页对它进行了测试,以查找您想要唯一记录的情况,而不仅是计数,而且它正在起作用。
select value count(1) from c join (select distinct value c from p in c.products)
您还可以where
根据条件所基于的内容,在括号的内部和外部使用子句。
这在另一个答案中也略有不同。
查看CosmosDB的select子句文档。
@ssmsexe引起了我的注意,我想在这里更新答案。
2018年10月19日添加了对 distinct的
支持
下面的查询工作正常
SELECT distinct value c FROM c join p in c.products
但是,它仍然无法计数。
计算不重复计数的 解决方法 是创建一个存储过程来执行不重复计数。它将基本上查询并继续到最后并返回计数。
如果将类似的查询传递给下面的存储过程,则将得到一个不同的计数
function count(queryCommand) {
var response = getContext().getResponse();
var collection = getContext().getCollection();
var count = 0;
query(queryCommand);
function query(queryCommand, continuation){
var requestOptions = { continuation: continuation };
var isAccepted = collection.queryDocuments(
collection.getSelfLink(),
queryCommand,
requestOptions,
function (err, feed, responseOptions) {
if (err) {
throw err;
}
// Scan results
if (feed) {
count+=feed.length;
}
if (responseOptions.continuation) {
// Continue the query
query(queryCommand, responseOptions.continuation)
} else {
// Return the count in the response
response.setBody(count);
}
});
if (!isAccepted) throw new Error('The query was not accepted by the server.');
}
}
该解决方法的问题在于,它可能会超过您收藏中的RU限制,并且不会成功。如果是这种情况,您可以在服务器端实现类似的代码,但效果并不理想。
我想计算两个集合中不同元素的数量。这就是集合1和集合2的并集。 如何将以下伪SQL格式化为有效的SQL 编辑set1和set2是表1的两列 下面是一个简短的例子: 在一个班里安排1名学生: 在一个班里安排两名学生: 我想要两个班的学生人数不同: 所以,一个工会就行了,我可以数一数。
我的宇宙数据库每天都会更新一些数据 我的逻辑设置为24小时循环。我的问题是,如果cosmosdb中添加了任何新数据,我无法获取过去24小时的数据。我只想用“_ts”来获取最后24小时的数据。知道怎么做吗? 尝试了这个,但没有得到所需的结果。
我想数一数一条流的不同元素,我想知道为什么 不行,日蚀告诉我 类型收集器中的方法toMap(Function,Function,BinaryOperator)不适用于参数((s)- 顺便说一句,我知道这个解决方案: 所以我有两个问题: 我的第一个方法有什么错误 编辑:我自己解决了第一个问题: Java需要一个函数作为第二个参数。
问题内容: 我有一个有趣的查询需要做。我有一张表,其中有一列包含ip地址编号(使用)和一列。我希望能够计算每天有唯一IP地址列的数量。也就是说,每天有多少个不同的ip行。因此,例如,如果一个IP地址在同一天两次,则在最终计数中将计为1;但是,如果同一IP地址在另一天,则将被计算为第二个计数。 示例数据: 问题答案: SQLFiddle演示
我有这个模式 列表表 [{“movie_id”:100,“gene1”:“犯罪”,“计数”:1,“id”:100},{“movie_id”:141267,“gene1”:“犯罪”,“计数”:1,“id”:141267},{“movie_id”:207932,“gene1”:“犯罪”,“计数”:1,“id”:207932},{“movie_id”:238636,“gene1”:“惊悚”,“计数”:1
问题内容: 我可以在不枚举的情况下计算每列的不同值吗? 说我有一个表,,,并没有其他的列。在没有明确提及这些列的情况下,我希望得到与以下结果相同的结果: 我怎样才能做到这一点 ? 问题答案: 我认为使用普通SQL可以轻松完成的最好工作就是运行这样的查询,以生成所需的查询,然后运行该查询。