标签: aggregate

SQL:全部分组

我想做以下伪SQL:

SUM( SELECT a FROM tab WHERE b > 0);
Run Code Online (Sandbox Code Playgroud)

这种语法不起作用(至少在sqlite中不起作用),所以我试图弄清楚正确的措辞.

SELECT SUM(a) FROM tab WHERE b > 0 GROUP BY (*); % nope
SELECT SUM(a) FROM tab WHERE b > 0 GROUP BY (1); % nope
Run Code Online (Sandbox Code Playgroud)

建议?

sql sqlite aggregate

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

需要查询帮助 - 聚合和多个联接

我有几个表在我的应用程序中使用.一个维护产品列表,另一个维护对这些项目的评论,另一个包含这些项目的星级评级,最后一个包含这些项目的购买.我的表看起来像这样:

tbl_item:
---------
id      INT (primary key)
name    VARCHAR (product name)

tbl_comment:
------------
id          INT (primary key)
item_id     INT (foregin key -> tbl_item.id)
commenttext VARCHAR

tbl_rating:
-----------
id          INT (primary key)
item_id     INT (foreign key -> tbl_item.id)
rating      DOUBLE

tbl_purchases:
--------------
id          INT (primary key)
item_id     INT (foreign key -> tbl_item.id)
Run Code Online (Sandbox Code Playgroud)

我想执行一个返回以下内容的查询:

* The design ID
* The average rating
* The number of comments
* The number of purchases
Run Code Online (Sandbox Code Playgroud)

我有类似的东西,但它返回不正确的数据:

SELECT  d.id ,
        COUNT(tbl_purchases.id) AS purchase_count, 
        COUNT(tbl_comment.id) AS comment_count, …
Run Code Online (Sandbox Code Playgroud)

sql postgresql join aggregate count

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

Oracle SQL在所有表中查找最高ID

我的每个表都有一个"id"字段.鉴于表的列表可能会发生变化,我需要能够在所有这些中找到最高的ID.

有没有办法在oracle数据库中获取表的列表,聚合它们的行(只有id),然后得到max()

PS这用于更新已经失败的序列.

sql oracle aggregate

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

如何有效地对稀疏数据进行聚合

我有一个包含1008412个观测值的大型数据集,列是customer_id(int),visit_date(日期,格式:"2010-04-04"),visit_spend(浮点数).

此日期函数用于聚合地图周数范围13-65:

weekofperiod <- function(dt) {
    as.numeric(format(as.Date(dt), "%W")) + 52 * (as.numeric(format(as.Date(dt), "%Y"))-2010)
}
Run Code Online (Sandbox Code Playgroud)

每个customer_id在53周的时间内拥有可变数量的总访问量.对于每一个customer_id,我想要得到的总和spend_per_week,通过weekofperiod().下面的代码在功能上是正确但非常慢 - 评论让它更快?此外,aggregate()产生稀疏输出,其中没有访问的周数缺失,我初始化spend_per_week为0,然后逐行手动分配来自aggregate()的非零结果,以确保结果总是有53行.当然可以做得更好吗?

示例数据集行如下所示:

   customer_id visit_date visit_spend 
72          40 2011-03-15       18.38 
73          40 2011-03-20       23.45  
74          79 2010-04-07      150.87 
75          79 2010-04-17      101.90 
76          79 2010-05-02      111.90 
Run Code Online (Sandbox Code Playgroud)

这里是空周的聚合调用和调整的代码:

for (cid in all_tt_cids) {
  print_pnq('Getting statistics for cid', cid)

  # Get row indices of the selected subset, for just this cid's …
Run Code Online (Sandbox Code Playgroud)

aggregate r sparse-matrix dataframe

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

如何使用聚合(...,FUN =粘贴)使xtable工作?

说我有以下数据框:

df <- data.frame(sector = c(rep('a', 3), rep('b', 4)), id = 1:7)
Run Code Online (Sandbox Code Playgroud)

我想创建一个汇总表,报告每个扇区的ID列表,所以我这样做:

table <- xtable(aggregate(id ~ sector, df, paste))
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用xtable()上面的对象转换为LaTeX时,我收到以下错误:

> xtable(table)
Error in is.finite(x) : default method not implemented for type 'list'
Run Code Online (Sandbox Code Playgroud)

这是由第二列引起的,因为class(table$id)确认它是一个列表.

应该注意,将xtable()数据帧作为输入很好地处理.将"粘贴"更改为更常见的内容(如"sum"或"length")不会产生错误.

我能做些什么table(或为了xtable什么呢?所以它创造了我想要的桌子?所需的原始输出应如下所示:

\begin{table}[ht]
\centering
\begin{tabular}{rlr}
  \hline
 & sector & id \\ 
  \hline
1 & a &   1, 2, 3 \\ 
  2 & b &  4, 5, 6, 7\\ 
   \hline
\end{tabular}
\end{table}
Run Code Online (Sandbox Code Playgroud)

latex aggregate r xtable

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

R加权算术平均值

假设我在R中有这个data.frame:

ages <- data.frame(Indiv = numeric(),
    Age = numeric(),
    W = numeric())
ages[1,] <- c(1,10,2)
ages[2,] <- c(1,15,5)
ages[3,] <- c(2,5,1)
ages[4,] <- c(2,100,2)

ages

  Indiv Age W
1     1  10 2
2     1  15 5
3     2   5 1
4     2 100 2
Run Code Online (Sandbox Code Playgroud)

如果我做:

meanAge <- aggregate(ages$Age,list(ages$Indiv),mean)
Run Code Online (Sandbox Code Playgroud)

我得到每个Indiv(Group.1)的平均年龄(x):

  Group.1    x
1       1 12.5
2       2 52.5
Run Code Online (Sandbox Code Playgroud)

但我想计算年龄的加权算术平均值(权重为W).如果我做:

WmeanAge <- aggregate(ages$Age,list(ages$Indiv),weighted.mean,ages$W)
Run Code Online (Sandbox Code Playgroud)

我明白了:

Error in weighted.mean.default(X[[1L]], ...) : 
  'x' and 'w' must have the same length
Run Code Online (Sandbox Code Playgroud)

我想我应该:

  Group.1           x
1       1 …
Run Code Online (Sandbox Code Playgroud)

aggregate r weighted-average

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

在按组首次出现事件之前选择行

我有一系列的观察结果描述了动物是否以及何时被发现在特定区域.以下样本表确定每天看到某种动物(status == 1)与否(status == 0).

   id       date status
1   1 2014-06-20      1
2   1 2014-06-21      1
3   1 2014-06-22      1
4   1 2014-06-23      1
5   1 2014-06-24      0
6   2 2014-06-20      1
7   2 2014-06-21      1
8   2 2014-06-22      0
9   2 2014-06-23      1
10  2 2014-06-24      1
11  3 2014-06-20      1
12  3 2014-06-21      1
13  3 2014-06-22      0
14  3 2014-06-23      1
15  3 2014-06-24      0
16  4 2014-06-20      1
17  4 2014-06-21      0 …
Run Code Online (Sandbox Code Playgroud)

aggregate r data.table

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

按组汇总所有列

我很肯定这是一个非常简单的答案,但是我似乎无法在多个条件下进行聚合或转换

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

> head(df, n=10L)
   STATE  EVTYPE FATALITIES INJURIES
1     AL TORNADO          0       15
3     AL TORNADO          0        2
4     AL TORNADO          0        2
5     AL TORNADO          0        2
6     AL TORNADO          0        6
7     AL TORNADO          0        1
9     AL TORNADO          1       14
11    AL TORNADO          0        3
12    AL TORNADO          0        3
13    AL TORNADO          1       26
Run Code Online (Sandbox Code Playgroud)

显然,这种情况还在继续...我要做的是在执行过程中按STATE和EVTYPE折叠,以计算致命和伤害,因此,如果这10行是我的有效数据集,那么结果将是一个单行数据帧:

   STATE  EVTYPE FATALITIES INJURIES
1     AL TORNADO          2       74
Run Code Online (Sandbox Code Playgroud)

我的完整框架有很多状态和许多EVTYPE

aggregate r

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

将多个CSV文件平均为R中的1个平均文件

我大约有300个csv文件,其中包含风速,温度,压力等各列,每行从2007年到2012年是不同的时间。每个文件都来自不同的位置。我想将所有文件合并为一个文件,这是所有300个文件的平均值。因此,新文件中每个文件的行数和列数均相同,但是每个单元格将是所有300个文件的相应平均值。是否有捷径可寻?

csv merge aggregate r

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

MongoDB聚合,如何在组管道中添加数据的每个元素

我有包含标签字段的文档.它是一个简单的数组,里面有标记名,里面没有对象也没有_id.只是像这样的普通标签["Protocol", "Access", "Leverage", "Capability"].

在我的组管道中,我尝试了类似的东西'selectedTags': { $addToSet: '$tags' }但最后我得到了一个包含标签数组的数组.我也是这样的$push.

我尝试使用$each$pushAll但不支持它们作为分组操作符,因为我的shell告诉我.

有人可以帮我这个吗?

谢谢

编辑:

示例文档:

{
    "_id" : "HWEdDGsq86x4ikDSQ",
    "teamId" : "AdLizGnPuqbWNsFHe",
    "ownerId" : "Qb5EigWjqn2t3bfxD",
    "type" : "meeting",
    "topic" : "Grass-roots hybrid knowledge user",
    "fullname" : "Guidouil",
    "startDate" : ISODate("2017-07-30T09:00:05.513Z"),
    "shareResults" : true,
    "open" : true,
    "language" : "fr",
    "tags" : [
        "Protocol",
        "Challenge",
        "Artificial Intelligence",
        "Capability"
    ],
    "isDemo" : true,
    "createdAt" : ISODate("2017-11-15T19:24:05.513Z"),
    "participantsCount" : 10,
    "ratersCount" : 10,
    "averageRating" …
Run Code Online (Sandbox Code Playgroud)

arrays each aggregate mongodb aggregation-framework

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