标签: aggregation

Elasticsearch - 计算嵌套聚合相对于父存储桶的百分比

更新的问题

在我的查询中,我先聚合日期,然后聚合传感器名称。是否可以根据父存储桶的嵌套聚合和文档总数(或任何其他聚合)计算比率?查询示例:

{
  "size": 0,
  "aggs": {
    "over_time": {
      "aggs": {
        "by_date": {
          "date_histogram": {
            "field": "date",
            "interval": "1d",
            "min_doc_count": 0
          },
          "aggs": {
            "measure_count": {
              "cardinality": {
                "field": "date"
              }
            },
            "all_count": {
              "value_count": {
                "field": "name"
              }
            },
            "by_name": {
              "terms": {
                "field": "name",
                "size": 0
              },
              "aggs": {
                "count_by_name": {
                  "value_count": {
                    "field": "name"
                  }
                },
                "my ratio": count_by_name / all_count * 100 <-- How to do that?
              }
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我想要一个自定义指标,它可以给出count_by_name …

aggregation bucket elasticsearch date-histogram

5
推荐指数
1
解决办法
4002
查看次数

Elasticsearch - 对同一嵌套范围内的多个字段进行聚合

我正在按标签聚合产品搜索结果,标签有名称和 ID 字段。如何将两个字段都返回到聚合存储桶中?我可以得到一个,但我不知道如何得到两个。顺便说一句,我的集群上的脚本访问已关闭,因此我无法使用它。

这是我的产品映射(针对此问题进行了简化):

"mappings": {
    "products": {
        "properties": { 
            "title": {
                "type": "string"
            },
            "description": {
                "type": "string"
            },
            "topics": {
                "properties": {
                    "id": {
                        "type": "string",
                        "index": "not_analyzed"
                    },
                    "name": {
                        "type" : "string",
                        "index": "not_analyzed"
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

"query": {
    "multi_match": {
        "query": "Testing 1 2 3",
        "fields": ["title", "description"]
    },
    "aggs": {
        "Topics": {
            "terms": {
                "field": "topics.id",
                "size": 15
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的聚合桶如下所示:

在此处输入图片说明

...第一个桶中的“键”值是topics.id 字段值。有没有办法将我的 topic.name 字段添加到存储桶?

aggregation elasticsearch

5
推荐指数
1
解决办法
1万
查看次数

Thymeleaf 聚合不起作用

我们有以下代码:

<div th:each="client : ${clients}">
    <div th:each="purchase : ${client.purchases}">
        <div th:each="product : ${purchase.products}">
            <span th:text="${product.price}"></span>
            <!-- <span id="2" th:text="${#aggregates.sum(products.{price})}"> </span> -->
            <!-- <span id="2" th:text="${#aggregates.sum(products.![price])}"> </span>  -->
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

输出是:

5.25
4.20
Run Code Online (Sandbox Code Playgroud)

如果我取消注释第一条评论,则会收到错误

Exception evaluating SpringEL expression: "#aggregates.sum(products.{price})" (clients/clients:84)
Run Code Online (Sandbox Code Playgroud)

如果我仅取消第二条评论的注释,则会收到错误:

Exception evaluating SpringEL expression: "#aggregates.sum(products.![price])" (clients/clients:85)
Run Code Online (Sandbox Code Playgroud)

我尝试使用http://demo-dspace-cris.cineca.it/bitstream/123456789/26/1/usingthymeleaf.pdf

我在用thymeleaf 2.1.4

有用 !

我应该使用:

<span id="2" th:text="${#aggregates.sum(purchase.products.![price])}"> </span> 
Run Code Online (Sandbox Code Playgroud)

aggregation spring-el thymeleaf

5
推荐指数
1
解决办法
4338
查看次数

为什么“instanceof”不起作用?

我正在使用 Java instanceof,但它似乎不起作用。

我有三个扩展 Hero 类的 Java 类。
Hero.java类:

public abstract class Hero {

    protected int health;

    public Hero() { 
    }
}
Run Code Online (Sandbox Code Playgroud)

其他三类

public class Archer extends Hero {
    public Archer() {
    }
}

public class Mage extends Hero {
    public Mage() {
    }
}

public class Warrior extends Hero {
    public Warrior() {
    }
}
Run Code Online (Sandbox Code Playgroud)

我有这个主类WelcomeScreen.java

public class WelcomeScreen {

    private Archer archer;
    private Mage mage;
    private Warrior warrior;
    private Hero …
Run Code Online (Sandbox Code Playgroud)

java oop polymorphism instanceof aggregation

5
推荐指数
1
解决办法
6312
查看次数

在 Teradata SQL 中连接多个记录的字符串

我有一份在不同州做生意的商人名单。

Merch    State

A          NC

A          FL

B          CA

B          VA
Run Code Online (Sandbox Code Playgroud)

我不想返回四个记录,而是想按商品分组,但连接状态的字符串,以便输出看起来像

Merch      States

A           NC,FL

B           CA,VA
Run Code Online (Sandbox Code Playgroud)

我在翻译这个答案中针对我的问题的响应时遇到了很多麻烦 连接/聚合字符串的最佳方式

我也无法让 String_agg 工作,我不确定它在 Teradata 中是否工作。https://learn.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql

sql string teradata aggregation

5
推荐指数
1
解决办法
1万
查看次数

MongoDb $addFields 和 $match

在我的 mongodb 查询中,我使用 $addFields 添加由其他三个字段连接的 ID 字段。我的问题是,如果我将新添加的字段与我要查询的值匹配,则不会得到任何结果。对于其他领域,它们工作得很好。

聚合顺序

什么是聚合

data = await model.aggregate([
            {
                $project: {
                    projectName: 1,
                    price: 1,
                    'document': '$$ROOT'
                }
            },
            {
                $addFields:{
                    'document.id': {$concat: ['$document.propertyId.prefix','$document.propertyId.number']}
                }
            },
            {
                $match: {
                    $and: [
                        {
                            $or: [
                                {id: {$regex: '.*' + req.query.search + '.*', $options: "i"}},
                                {projectName: {$regex: '.*' + req.query.search + '.*', $options: "i"}},

                                /*This also doesnt work*/
                                // {'document.id': {$regex: '.*' + req.query.search + '.*', $options: "i"}},
                                // {'document.projectName': {$regex: '.*' + req.query.search + '.*', $options: …
Run Code Online (Sandbox Code Playgroud)

aggregation mongodb node.js

5
推荐指数
1
解决办法
1万
查看次数

$lookup 查找数组 mongo 聚合中的每个元素

我有用户模式,其中人员字段包含viewers属性,该属性包含一个 ObjectId 数组作为用户集合本身的引用,例如

{
    "username": "user1",
    "password": "password",
    "email": "user1@gmail.com",
    "people": [{
            "id": 1,
            "viewers": ["ObjectId....", "ObjectId...."]
        },
        {
            "id": 2,
            "viewers": ["ObjectId....", "ObjectId...."]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我需要做的是$lookup对于查看器内的每个元素,问题是当我使用下面的管道时,为每个文档推送相同的查看器

{
  $unwind: {
    path: "$people.viewers",
    preserveNullAndEmptyArrays: true
  }
},
{
  $lookup: {
    from: "users",
    localField: "people.viewers",
    foreignField: "_id",
    as: "people"
  }
},
{
  $unwind: {
    path: "$viewers",
    preserveNullAndEmptyArrays: true
  }
},
{
  $project: {
    username: 1,        
    "viewers.username": 1    
  }
},
{
  $group: {
    _id: "$_id",
    username: { $first: …
Run Code Online (Sandbox Code Playgroud)

aggregation mongoose mongodb

5
推荐指数
1
解决办法
6264
查看次数

没有 PANDAS 的 Python 聚合

我有一个排序和嵌套的列表。列表中的每个元素有3个子元素;'药物名称',Doctor_id,金额。对于给定的药物名称(重复),医生 ID 不同,数量也不同。请参阅下面的示例列表..

我需要一个输出,其中对于每个药物名称,我需要计算该药物的唯一医生 ID 总数和美元金额总和。例如,对于下面的列表片段..

[
   ['CIPROFLOXACIN HCL', 1801093968, 61.49],
   ['CIPROFLOXACIN HCL', 1588763981, 445.23],
   ['HYDROCODONE-ACETAMINOPHEN', 1801093968, 251.52],
   ['HYDROCODONE-ACETAMINOPHEN', 1588763981, 263.16],
   ['HYDROXYZINE HCL', 1952310666, 945.5],
   ['IBUPROFEN', 1801093968, 67.06],
   ['INVEGA SUSTENNA', 1952310666, 75345.68]
]
Run Code Online (Sandbox Code Playgroud)

所需的输出如下。

[
   ['CIPROFLOXACIN HCL', 2, 516.72],
   ['HYDROCODONE-ACETAMINOPHEN', 2, 514.68]
   ['HYDROXYZINE HCL', 1, 945.5]
   ['IBUPROFEN', 1, 67.06]
   ['INVEGA SUSTENNA', 1, 75345.68]
]
Run Code Online (Sandbox Code Playgroud)

在数据库世界中,这是最简单的事情,只需对药物名称进行简单的 GROUP BY 即可。在Python中,我不允许使用PANDAS、NumPy等。只是Python的基本构建块。我尝试了下面的代码,但无法重置计数变量来计算医生 ID 和金额。这段带注释的代码是多次尝试之一。不确定我是否需要使用嵌套的 for 循环或 for 循环-while 循环组合。

感谢所有帮助!

aggr_list = []
temp_drug_name = ''
doc_count = 0
amount = 0
for list_element …
Run Code Online (Sandbox Code Playgroud)

python loops aggregation

5
推荐指数
1
解决办法
7056
查看次数

不理解 UML 关系之间的区别

这里我有这个类图:

在此输入图像描述

以下是我不明白的事情:

  1. 为什么是Order-OrderDetail聚合?它不应该只是一个关联吗,因为它会有一个List<OrderDetail>类似的:
public Order{
    public DateTime date;
    public Status status;
    public List<OrderDetail> orderDetails;
}
Run Code Online (Sandbox Code Playgroud)
  1. 为什么是OrderDetail-Item依赖?既然它引用了该类,那么它不应该是关联吗Item

图表参考: http://sslabmcs12.weebly.com/resources1.html

uml class-diagram associations aggregation

5
推荐指数
1
解决办法
83
查看次数

包含字符串列表的聚合列,其中元素与极坐标相交

我正在尝试将数据框中的一些行与列聚合list[str]。对于每个索引,我需要组中所有列表的交集。不确定我是否想太多,但我现在无法提供解决方案。有什么帮助吗?

\n
import polars as pl    \ninput_df = pl.DataFrame(\n   {"idx": [1,1,2,2,3,3], \n    "values": [["A", "B"], ["B", "C"], ["A", "B"], ["B", "C"], ["A", "B"], ["B", "C"]]\n   }\n)\n\noutput_df = input_df.agg(...)\n\n>>> input_df\nshape: (6, 2)\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 idx \xe2\x94\x86 values     \xe2\x94\x82\n\xe2\x94\x82 --- \xe2\x94\x86 ---        \xe2\x94\x82\n\xe2\x94\x82 i64 \xe2\x94\x86 list[str]  \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 1   \xe2\x94\x86 ["A", "B"] \xe2\x94\x82\n\xe2\x94\x82 1   \xe2\x94\x86 ["B", "C"] \xe2\x94\x82\n\xe2\x94\x82 2   \xe2\x94\x86 ["A", "B"] \xe2\x94\x82\n\xe2\x94\x82 2   \xe2\x94\x86 ["B", "C"] \xe2\x94\x82\n\xe2\x94\x82 3   \xe2\x94\x86 ["A", "B"] \xe2\x94\x82\n\xe2\x94\x82 3   \xe2\x94\x86 ["B", "C"] \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n>>> output_df # Expected output\nshape: (3, …
Run Code Online (Sandbox Code Playgroud)

python list aggregation dataframe python-polars

5
推荐指数
1
解决办法
243
查看次数