标签: 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
查看次数

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
查看次数

在 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万
查看次数

$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
查看次数

是否可以使用查询“连接”elasticsearch 中的两个索引

我知道在elasticsearch中没有加入索引的选项,但我需要找到一种方法来解决这个问题:

我有 2 个索引,如 A、B

IndexA有field1、field2、field3等信息
IndexBfield4、field5、field6

如果我将通过查询字段5(在本例中为“测试”)进行搜索,我希望在树中拥有所有关系,例如:

匹配 IndexA 中与 IndexA 中的“field2”和 IndexB 中的“field5”相匹配的所有文档

例如
IndexA 文档:
5、“test”、“test2”、
10、“test”、“test7”
11、“test10” ,“测试11”

IndexB 文档:
1、“test”、(...)
2、“test”、(...)
3、“test100”、(...)

示例响应:
对于 id5(来自索引 A),我想要一个来自索引 B 的 id 为 1 和 2 的对象,例如 {id:5,响应:{1, 2}}
对于 id10(来自索引 A)我想要一个对象id 的 1 和 2 来自索引 B,例如 id11 的 {id:10,响应:{1, 2}}
没有匹配项(“test10”!=“test”)
{id:11,响应:{}}

也许有什么办法可以解决这个问题吗?最后,我需要对四个索引执行此操作(但如果可以在两个索引之间执行此操作,那么我也可以对 4 个索引执行此操作)。

aggregation elasticsearch

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

不理解 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
查看次数

如何在C#中使用私有继承又名C++,为什么不在C#中使用它?

我知道C++支持私有继承,C#只支持公共继承.我还看到一篇文章说私有继承通常定义HAS-A关系和类之间的聚合关系.

编辑:私有继承的C++代码:"Car has-a Engine"关系也可以使用私有继承表达:

class Engine {
 public:
   Engine(int numCylinders);
   void start();                 // Starts this Engine
 };

class Car : private Engine {    // Car has-a Engine
 public:
   Car() : Engine(8) { }         // Initializes this Car with 8 cylinders
   using Engine::start;          // Start this Car by starting its Engine
 };
Run Code Online (Sandbox Code Playgroud)

现在,有没有办法在C#类之间创建一个HAS-A关系,这是我想知道的事情之一 - 怎么样?

另一个奇怪的问题是为什么C#不支持私有(也受保护)继承? - 不支持多个实现继承是正当理由还是其他任何原因?

是否为未来版本的C#计划了私有(和受保护)继承?

是否支持C#中的私有(和受保护)继承使其成为一种更好和广泛使用的语言?

c# c++ inheritance aggregation private-inheritance

4
推荐指数
1
解决办法
870
查看次数

在Spark SQL中使用Group By Date进行聚合

我有一个RDD包含一个名为time long类型的时间戳:

root
 |-- id: string (nullable = true)
 |-- value1: string (nullable = true)
 |-- value2: string (nullable = true)
 |-- time: long (nullable = true)
 |-- type: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)

我试图将value1,value2和time分组为YYYY-MM-DD.我试图按强制分组(时间为日期),但后来我收到以下错误:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.spark.deploy.worker.DriverWrapper$.main(DriverWrapper.scala:40)
    at org.apache.spark.deploy.worker.DriverWrapper.main(DriverWrapper.scala)
Caused by: java.lang.RuntimeException: [1.21] failure: ``DECIMAL'' expected but identifier Date found
Run Code Online (Sandbox Code Playgroud)

这是否意味着没有办法按日期分组?我甚至试图添加另一个级别的转换以将其作为String:

cast(cast(time as Date) as String)
Run Code Online (Sandbox Code Playgroud)

哪个返回相同的错误.

我已经读过,我可能在RDD上使用了可能的aggregateByKey,但我不明白如何将它用于几列并将其转换为YYYY-MM-DD字符串.我该怎么办?

sql group-by aggregation apache-spark

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