标签: aggregate

将具有相似字符串的行分组

我搜索了很多,但大多数解决方案都是串联选项,而不是我真正想要的。

我有一个表X(在 Postgres 数据库中):

anm_id  anm_category anm_sales
1       a_dog        100
2       b_dog        50
3       c_dog        60
4       a_cat        70
5       b_cat        80
6       c_cat        40
Run Code Online (Sandbox Code Playgroud)

我想通过将 'a_dog'、'b_dog'、'c_dog' 分组为狗,将 'a_cat'、'b_cat'、'c_cat' 分组为猫来获得总销售额。

我无法更改表中的数据,因为它是外部数据库,我只能从中获取信息。

如何使用 SQL 查询来做到这一点?它不需要特定于 Postgres。

sql postgresql aggregate

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

PostgreSQL 将出现次数计入 json 键/值

给定一个文本元素数组,我想计算出现的次数并将它们作为带有文本键和整数值的子对象返回。(PostgreSQL 9.4)

情况 1 - 没有参考集

SELECT ARRAY['3G','2G','2G','3G','3G','3G','3G','4G']
Run Code Online (Sandbox Code Playgroud)

应该转化为

SELECT '{"2G": 2, "3G": 5, "4G": 1}'::jsonb
Run Code Online (Sandbox Code Playgroud)

案例 2 - 使用参考集

给定一组可能的条目ARRAY['2G','3G','4G'],返回的 json 还应包含计数为零的元素。

SELECT ARRAY['3G','2G','2G','3G','3G','3G','3G']
Run Code Online (Sandbox Code Playgroud)

应该转变为

SELECT '{"2G": 2, "3G": 5, "4G": 0}'::jsonb
Run Code Online (Sandbox Code Playgroud)

我通过使用非常接近案例 1 和 2

-- case 1
SELECT json_object( array_agg(r.a)::text[],array_agg(r.num)::text[] ) 
FROM (
  SELECT a, count(a) as num 
  FROM unnest( ARRAY['3G','2G','2G','3G','3G','3G','3G','4G'] ) a
  GROUP BY a ORDER BY a
) r;

--case 2
SELECT json_object( array_agg(r.ref)::text[],array_agg(r.num)::text[] ) 
FROM (
  SELECT ref, count(a) as num 
  FROM …
Run Code Online (Sandbox Code Playgroud)

arrays postgresql json aggregate postgresql-9.4

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

如何在 Python 中访问聚合函数的值

我创建了一个数据帧并分组和聚合时间戳,为每个分组提供最小值和最大值,结果数据帧看起来像这个 DF 定义为病人 ID,时间戳我按病人 ID 对 DF 进行分组,然后我想获取最小值和最大值每个组的最大时间戳,我这样做了

bypatient_date = pd.DataFrame(byencounter.agg({'timestamp' : [np.min,np.max]})).reset_index())

  patient_id  timestamp            
              amin        amax
0         19  3396-08-21  3396-08-25
1         99  2723-09-27  2727-03-17
2       3014  2580-12-02  2581-05-01
3      24581  3399-07-19  3401-04-13
Run Code Online (Sandbox Code Playgroud)

我正在尝试找出每个患者 ID 的最小值和最大值之间的差异,但在尝试访问时间戳 amin 和时间戳 amax 中的值时遇到问题有没有办法在不循环但使用内置 pandas 或 numpy 的情况下执行此操作

python aggregate pandas

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

对数时间内聚合的数量

如何在对数(至少以二为底)编译时间(严格来说,以对数实例化数量)中定义聚合的数量?

我目前能做的就是在线性时间内实现期望的目标:

#include <type_traits>
#include <utility>

struct filler { template< typename type > operator type (); };

template< typename A, typename index_sequence = std::index_sequence<>, typename = void >
struct aggregate_arity
    : index_sequence
{

};

template< typename A, std::size_t ...indices >
struct aggregate_arity< A, std::index_sequence< indices... >, std::__void_t< decltype(A{(indices, std::declval< filler >())..., std::declval< filler >()}) > >
    : aggregate_arity< A, std::index_sequence< indices..., sizeof...(indices) > >
{

};

struct A0 {};
struct A1 { double x; };
struct A2 { int i; …
Run Code Online (Sandbox Code Playgroud)

c++ aggregate type-traits c++11 c++14

5
推荐指数
2
解决办法
826
查看次数

如何获取 ElasticSearch 中每种映射类型的文档(记录)计数?

我有一个名为“myindex”的 ElasticSearch 索引,我将三种不同映射类型(人员、事件和供应商)的文档加载到其中...

curl -XPOST localhost:9200/myindex/person/_bulk --data-binary  @../JSON_DATA/persons.json
curl -XPOST localhost:9200/myindex/event/_bulk --data-binary  @../JSON_DATA/events.json
curl -XPOST localhost:9200/myindex/vendor/_bulk --data-binary  @../JSON_DATA/vendors.json
Run Code Online (Sandbox Code Playgroud)

使用以下命令可以看到索引创建成功:

curl 'localhost:9200/_cat/indices?v'
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令成功列出所有映射类型:

curl -s -XGET 'http://localhost:9200/myindex/_mapping/?pretty'
Run Code Online (Sandbox Code Playgroud)

我的问题 - A 部分:如何获取显式命名索引(“myindex”)中每种映射类型的文档聚合/总数?换句话说,我想知道每种映射类型的文档数量。

注意:我尝试过curl -s -XGET 'http://localhost:9200/myindex/_count/?pretty',但它只返回所有映射类型的总计数,而不是每种映射类型的总计数。换句话说,它并没有细分县城海滩测绘类型。

我的问题 - B 部分:鉴于能够获取每种映射类型的文档聚合/总数,如何获取存储在显式命名索引(“myindex”)中的任何一种特定映射类型的聚合计数?换句话说,我想知道索引“myindex”下一种显式命名的映射类型(例如“事件”)的文档数量。

aggregate count command-line-interface elasticsearch

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

如何在elasticsearch中获取聚合术语向量?

我是弹性搜索的新手。我试图获取一组文档的总词频计数,但我似乎无法在elasticsearch 中计算出来。我知道有一个使用聚合的文档计数功能。通过术语向量,我可以找到文档中术语的频率,但是如何找到一组文档中术语的总频率呢?

单个文档的术语向量:

GET /test/product/3/_termvector
Run Code Online (Sandbox Code Playgroud)

汇总文档数:

GET /test/product/_search?pretty=true
{
  "size" : 0,
  "query" : {
    "match_all" : {}
  },
  "aggs" : {
    "phrases" : {
      "terms" : {
        "field" : "title",
        "size"  : 10000  
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

indexing aggregate elasticsearch

5
推荐指数
0
解决办法
399
查看次数

如何聚合数据框中多列的重复行

我有一个data.frame看起来像这样的(但是有更多的列和行):

    Gene      Cell1    Cell2    Cell3     
1      A          2        7        8 
2      A          5        2        9 
3      B          2        7        8
4      C          1        4        3
Run Code Online (Sandbox Code Playgroud)

我想对 中具有相同值的行进行求和Gene,以获得如下结果:

    Gene      Cell1    Cell2    Cell3     
1      A          7        9       17  
2      B          2        7        8
3      C          1        4        3
Run Code Online (Sandbox Code Playgroud)

根据之前问题的答案,我尝试使用aggregate但我无法理解如何获得上述结果。这是我尝试过的:

aggregate(df[,-1], list(df[,1]), FUN = sum)
Run Code Online (Sandbox Code Playgroud)

有人知道我做错了什么吗?

aggregate r dataframe

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

Pandas:具有多种功能的分组和聚合

情况

我有一个 pandas 数据框定义如下:

import pandas as pd

headers = ['Group', 'Element', 'Case', 'Score', 'Evaluation']
data = [
    ['A', 1, 'x', 1.40, 0.59],
    ['A', 1, 'y', 9.19, 0.52],
    ['A', 2, 'x', 8.82, 0.80],
    ['A', 2, 'y', 7.18, 0.41],
    ['B', 1, 'x', 1.38, 0.22],
    ['B', 1, 'y', 7.14, 0.10],
    ['B', 2, 'x', 9.12, 0.28],
    ['B', 2, 'y', 4.11, 0.97],
]
df = pd.DataFrame(data, columns=headers)
Run Code Online (Sandbox Code Playgroud)

在控制台输出中看起来像这样:

  Group  Element Case  Score  Evaluation
0     A        1    x   1.40        0.59
1     A        1    y   9.19 …
Run Code Online (Sandbox Code Playgroud)

python aggregate dataframe pandas

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

PostgreSQL 50M+行表聚合查询

问题陈述

\n\n

我有表“event_statistics”,其定义如下:

\n\n
CREATE TABLE public.event_statistics (\n    id int4 NOT NULL DEFAULT nextval(\'event_statistics_id_seq\'::regclass),\n    client_id int4 NULL,\n    session_id int4 NULL,\n    action_name text NULL,\n    value text NULL,\n    product_id int8 NULL,\n    product_options jsonb NOT NULL DEFAULT \'{}\'::jsonb,\n    url text NULL,\n    url_options jsonb NOT NULL DEFAULT \'{}\'::jsonb,\n    visit int4 NULL DEFAULT 0,\n    date_update timestamptz NULL,\nCONSTRAINT event_statistics_pkey PRIMARY KEY (id),\nCONSTRAINT event_statistics_client_id_session_id_sessions_client_id_id_for \nFOREIGN KEY \n(client_id,session_id) REFERENCES <?>() ON DELETE CASCADE ON UPDATE CASCADE\n)\nWITH (\n    OIDS=FALSE\n) ;\nCREATE INDEX regdate ON public.event_statistics (date_update \ntimestamptz_ops) ;\n
Run Code Online (Sandbox Code Playgroud)\n\n

和表“客户”: …

sql postgresql aggregate query-optimization

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

如何将猫鼬聚合结果转换为特定的文档模式类型?

考虑以下聚合:

\n\n
let getUsersWithNoPersonsPromise = () => {\n\n        let pipeline = [\n            {\n                $lookup: {\n                    from: "persons",\n                    localField: "id",\n                    foreignField: "person_id",\n                    as: "persons_users"\n                }\n            },\n            {\n                $match: {\n                    "persons_users:0": {\n                        $exists: false\n                    }\n                }\n            }\n        ];\n\n\n        return User.aggregate(pipeline).exec();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何将$match结果转换为 UserModel 类型?I\xc2\xb4m 在其上获取普通的 javascript 对象,并且我希望收到 mongoose User 类型对象。

\n

casting aggregate mongoose mongodb aggregation-framework

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