标签: aggregate

我可以将非聚合列与group by一起使用吗?

您不能(不应该)将非聚合放在查询SELECT行中GROUP BY.

但是,我想访问与max相关联的非聚合之一.用简单的英语,我想要一张每种类型最老的表格.

CREATE TABLE stuff (
   id int,
   kind int,
   age int
);
Run Code Online (Sandbox Code Playgroud)

这个查询给了我以后的信息:

SELECT kind, MAX(age)
FROM stuff
GROUP BY kind;
Run Code Online (Sandbox Code Playgroud)

但它不是最有用的形式.我真的希望id与每一行相关联,以便我可以在以后的查询中使用它.

我正在寻找这样的东西:

SELECT id, kind, MAX(age)
FROM stuff
GROUP BY kind;
Run Code Online (Sandbox Code Playgroud)

这输出:

SELECT stuff.*
FROM
   stuff,
   ( SELECT kind, MAX(age)
     FROM stuff
     GROUP BY kind) maxes
WHERE
   stuff.kind = maxes.kind AND
   stuff.age = maxes.age
Run Code Online (Sandbox Code Playgroud)

看起来真的应该离开以获取这些信息而无需加入.我只需要SQL引擎在计算最大值时记住其他列.

mysql sql group-by aggregate

16
推荐指数
2
解决办法
3万
查看次数

在R中按周汇总

在RI中,经常zoo按月汇总每日数据(a ),使用以下内容:

result <- aggregate(x, as.yearmon, "mean", na.rm=TRUE)

我有办法在一周之内完成这项工作吗?

aggregate r zoo

16
推荐指数
1
解决办法
7305
查看次数

Pandas groupby(),agg() - 如何在没有多索引的情况下返回结果?

我有一个数据帧:

pe_odds[ [ 'EVENT_ID', 'SELECTION_ID', 'ODDS' ] ]
Out[67]: 
     EVENT_ID  SELECTION_ID   ODDS
0   100429300       5297529  18.00
1   100429300       5297529  20.00
2   100429300       5297529  21.00
3   100429300       5297529  22.00
4   100429300       5297529  23.00
5   100429300       5297529  24.00
6   100429300       5297529  25.00
Run Code Online (Sandbox Code Playgroud)

当我使用groupby和agg时,我得到了一个多索引的结果:

pe_odds.groupby( [ 'EVENT_ID', 'SELECTION_ID' ] )[ 'ODDS' ].agg( [ np.min, np.max ] )
Out[68]: 
                         amin   amax
EVENT_ID  SELECTION_ID              
100428417 5490293        1.71   1.71
          5881623        1.14   1.35
          5922296        2.00   2.00
          5956692        2.00   2.02
100428419 603721         2.44   2.90
          4387436        4.30   6.20
          4398859 …
Run Code Online (Sandbox Code Playgroud)

python group-by aggregate multi-index pandas

16
推荐指数
1
解决办法
7655
查看次数

按年和月计算总数

我有一个看起来像这样的表:

id,created,action
1,'2011-01-01 04:28:21','signup'
2,'2011-01-05 04:28:21','signup'
3,'2011-02-02 04:28:21','signup'
Run Code Online (Sandbox Code Playgroud)

如何选择和分组这些输出为:

year,month,total
2011,1,2
2011,2,1
Run Code Online (Sandbox Code Playgroud)

mysql group-by aggregate date

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

计算每个独特元素出现次数的最快方法

计算R中向量中每个唯一元素的出现次数的最快方法是什么?

到目前为止,我已经尝试了以下五个功能:

f1 <- function(x)
{
    aggregate(x, by=list(x), FUN=length)
}


f2 <- function(x)
{
    r <- rle(x)
    aggregate(r$lengths, by=list(r$values), FUN=sum)
}


f3 <- function(x)
{
    u <- unique(x)
    data.frame(Group=u, Counts=vapply(u, function(y)sum(x==y), numeric(1)))
}

f4 <- function(x)
{
    r <- rle(x)
    u <- unique(r$values)
    data.frame(Group=u, Counts=vapply(u, function(y)sum(r$lengths[r$values==y]), numeric(1)))
}

f5 <- function(x)
{
    as.data.frame(unclass(rle(sort(x))))[,2:1]
}
Run Code Online (Sandbox Code Playgroud)

他们中的一些人没有按类别给出结果,但这并不重要.以下是结果(使用包microbenchmark):

> x <- sample(1:100, size=1e3, TRUE); microbenchmark(f1(x), f2(x), f3(x), f4(x), f5(x))
Unit: microseconds
  expr      min        lq    median        uq      max neval
 f1(x) 4133.353 4230.3700 …
Run Code Online (Sandbox Code Playgroud)

performance aggregate r

15
推荐指数
2
解决办法
8539
查看次数

针对具有大量聚合的大型群集的ElasticSearch设置

上下文和当前状态

我们正在将我们的集群从Cassandra迁移到完整的ElasticSearch集群.我们正在为每秒平均约250-300个文档索引文档.在ElasticSearch 1.2.0中,它代表每天~8Go.

{
 "generic":
    {
      "id": "twi471943355505459200",
      "type": "twitter",
      "title": "RT @YukBerhijabb: The Life is Choice - https://m.facebook.com/story.php?story_fbid=637864496306297&id=100002482564531&refid=17",
      "content": "RT @YukBerhijabb: The Life is Choice - https://m.facebook.com/story.php?story_fbid=637864496306297&id=100002482564531&refid=17",
      "source": "<a href=\"https://twitter.com/download/android\" rel=\"nofollow\">Twitter for  Android</a>",
      "geo": null,
      "link": "http://twitter.com/rosi_sifah/status/471943355505459200",
      "lang": "en",
      "created_at": 1401355038000,
      "author": {
        "username": "rosi_sifah",
        "name": "Rosifah",
        "id": 537798506,
        "avatar": "http://pbs.twimg.com/profile_images/458917673456238592/Im22zoIV_normal.jpeg",
        "link": "http://twitter.com/rosi_sifah"
      }
    },
 "twitter": {
   // a tweet JSON
 }
}
Run Code Online (Sandbox Code Playgroud)

我们的用户在我们的SQL数据库中保存请求,当他们要求他们的仪表板时,我们想要请求我们的ES集群查询(从数据库中检索)并使用新的ES聚合框架在其上进行一些聚合.

每个仪表板都显示一个明确的,用户选择的日期范围,因此我们始终使用

"range": {
 "generic.created_at": {
   "from": 1401000000000,
   "to": 1401029019706 …
Run Code Online (Sandbox Code Playgroud)

scalability aggregate cluster-computing elasticsearch

15
推荐指数
1
解决办法
6275
查看次数

为什么SQL聚合函数比Python和Java(或穷人的OLAP)慢得多

我需要一个真正的DBA的意见.Postgres 8.3在我的Macbook Pro上执行此查询需要200 ms,而Java和Python在20 ms(350,000行)内执行相同的计算:

SELECT count(id), avg(a), avg(b), avg(c), avg(d) FROM tuples;
Run Code Online (Sandbox Code Playgroud)

使用SQL数据库时这是正常的行为吗?

模式(该表包含对调查的响应):

CREATE TABLE tuples (id integer primary key, a integer, b integer, c integer, d integer);

\copy tuples from '350,000 responses.csv' delimiter as ','
Run Code Online (Sandbox Code Playgroud)

我用Java和Python编写了一些测试用于上下文,他们粉碎了SQL(纯Python除外):

java   1.5 threads ~ 7 ms    
java   1.5         ~ 10 ms    
python 2.5 numpy   ~ 18 ms  
python 2.5         ~ 370 ms
Run Code Online (Sandbox Code Playgroud)

即使sqlite3与Postgres竞争,尽管它假设所有列都是字符串(相比之下:即使只使用切换到数字列而不是Postgres中的整数导致10x减速)

我试过没有成功的调整包括(盲目地遵循一些网络建议):

increased the shared memory available to Postgres to 256MB    
increased the working memory to 2MB
disabled connection …
Run Code Online (Sandbox Code Playgroud)

python sql optimization olap aggregate

14
推荐指数
3
解决办法
5023
查看次数

django聚合或注释

这是一个非常愚蠢的事情,我知道,但我似乎没有得到Django聚合和注释函数的句柄.

我有一个非常简单的模型集:Events,AreasTypes.一个事件有外键指向AreaType.我只想为任何区域提供即将发生的事件的数量,对于任何类型都是相同的,即Area1-5即将发生的事件,Area2-6Type1-34事件等等.

我想避免编写自定义SQL,并尽可能使用q运算符.

django aggregate annotate

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

R编程 - 具有共同值的行的和元素

您好,并提前感谢您的帮助,

(请注意注释部分以获得更多见解:即下面示例中的成本列已添加到此问题中; Simon提供了一个很好的答案,但成本列本身未在他的数据响应中表示,尽管他提供的功能与成本列一起使用)

我有一个数据集,让我们称之为"数据",看起来像这样

NAME     DATE     COLOR   PAID    COST
Jim      1/1/2013 GREEN   150     100
Jim      1/2/2013 GREEN   50      25
Joe      1/1/2013 GREEN   200     150
Joe      1/2/2013 GREEN   25      10
Run Code Online (Sandbox Code Playgroud)

我想要做的是将具有相同NAME值的记录的PAID(和COST)元素相加,并将行数(如本示例中所示)减少为2,这样我的新数据框如下所示:

NAME     DATE     COLOR   PAID    COST
Jim      1/2/2013 GREEN   200     125
Joe      1/2/2013 GREEN   225     160
Run Code Online (Sandbox Code Playgroud)

就日期而言,我并不关心哪一个在求和过程中幸存下来.

我已经达到了rowSums(数据),但我不确定如何使用它.任何帮助将不胜感激.

aggregate r rowsum

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

Elasticsearch - 通用构面结构 - 计算与过滤器结合的聚合

在我们的一个新的项目,我们在这篇文章的启发http://project-a.github.io/on-site-search-design-patterns-for-e-commerce/#generic-faceted-search做我们的"facet"结构.虽然我已经在文章描述的范围内使用它,但是在选择方面时我遇到了让它工作的问题.我希望有人能给出一些可以尝试的提示,所以我不必再将所有聚合重做为单独的聚合计算.

问题基本上是我们使用单个聚合一次计算所有"方面",但是当我添加过滤器(fx.检查品牌名称)时,它会在返回聚合时"删除"所有其他品牌.我基本上想要的是它在计算其他方面时应该使用该品牌作为过滤器,但在计算品牌聚合时则不然.这是必要的,因此用户可以选择多个品牌.

看看https://www.contorion.de/search/Metabo_Fein/ou1-ou2?q=Winkelschleifer&c=bovy(这是上面文章中描述的网站),我选择了"Metabo"和"Fein"制造商( Hersteller),并展示了Hersteller菜单,它显示了所有制造商,而不仅仅是所选择的制造商.所以我知道它有可能以某种方式,我希望有一个关于如何编写聚合/过滤器的提示,所以我得到了"正确的电子商务方面行为".

在ES中的产品我有以下结构:(与原始文章相同,但在命名时使用"C#"ified)

"attributeStrings": [
    {
        "facetName": "Property",
        "facetValue": "Organic"
    },
    {
        "facetName": "Property",
        "facetValue": "Without parfume"
    },
    {
        "facetName": "Brand",
        "facetValue": "Adidas"
    }
]
Run Code Online (Sandbox Code Playgroud)

所以上面的产品有2个属性/方面组 - 属性有2个值(有机,没有香水)和品牌有1个值(阿迪达斯).没有任何过滤器,我从以下查询计算聚合:

  "aggs": {
    "agg_attr_strings_filter": {
      "filter": {},
      "aggs": {
        "agg_attr_strings": {
          "nested": {
            "path": "attributeStrings"
          },
          "aggs": {
            "attr_name": {
              "terms": {
                "field": "attributeStrings.facetName"
              },
              "aggs": {
                "attr_value": {
                  "terms": {
                    "field": "attributeStrings.facetValue",
                    "size": 1000,
                    "order": [
                      {
                        "_term": "asc"
                      }
                    ]
   } } } } } …
Run Code Online (Sandbox Code Playgroud)

aggregate facet elasticsearch

14
推荐指数
2
解决办法
3230
查看次数