标签: aggregate

SQL使用GROUP BY使其产生原始SELECT

我有一个类似的SQL查询

SELECT SUM(price) FROM budget GROUP BY {{PLACEHOLDER}}
Run Code Online (Sandbox Code Playgroud)

其中{{PLACEHOLDER}}将在代码中被替换.是否可以通过与以下语句产生相同输出的内容替换它?

SELECT price FROM budget
Run Code Online (Sandbox Code Playgroud)

sql aggregate

0
推荐指数
1
解决办法
189
查看次数

如何在PL/SQL中进行总结

鉴于我有一个包含用户数据的表,如下所示:

userID     calltime     result 
1         10:20         1
1         11:00         2
1         11:30         1
2         9:30          1
2         11:00         1
3         10:00         1
3         10:30         2
3         11:00         1
3         11:30         2
Run Code Online (Sandbox Code Playgroud)

现在我想这样总结一下:

userID     result1    result2
1             2         1
2             2         0
3             2         2
(total)       6         3
Run Code Online (Sandbox Code Playgroud)

对我来说,总结用户数据很好,但是如何在查询中添加总行?UNION不适用于此.

非常感谢你做的这些.

编辑:这是我当前的查询,当然,它不起作用:

  PROCEDURE P_SUMMARIZE_CALL
  (
    pStartDate IN DATE,
    pEndDate IN DATE,
    SummaryCur  OUT MEGAGREEN_CUR    
  )
  IS
  BEGIN
    OPEN SUMMARYCUR FOR
    SELECT USERID, TOTALCALLS,CONNECTEDCALLS,RATE,NOANSWER FROM
    (((SELECT USERID,
            count(CALLID) AS TOTALCALLS, 
            sum(CONNECTED) as CONNECTEDCALLS, …
Run Code Online (Sandbox Code Playgroud)

database oracle plsql aggregate

0
推荐指数
1
解决办法
481
查看次数

Rails 3范围,组合条件与聚合(总和)导致错误

我正在考虑一个链接两个范围的简单问题(Rails 3.2.5).

我有一个名为模型Point与田amounttransaction_date,除其他.用户获得各种活动的积分,并且在使用之前它们是"可用的",这是作为交易的一部分发生的,此时transaction_date更新,不再为空.

所以我有这样的范围:

scope :available, where("transaction_date IS NULL OR transaction_date = ''")
Run Code Online (Sandbox Code Playgroud)

它工作得很好,返回Point对象的正确集合.所以我能做到

> Point.available
=> [#<Point id: 123, amount: 22, transaction_date: nil >][#<Point id: 456, amount: 33, transaction_date: nil >]
Run Code Online (Sandbox Code Playgroud)

如果我想知道可用点的总和,我可以做到

> Point.available.sum("amount")
=> 55
Run Code Online (Sandbox Code Playgroud)

但是,如果我试图制作另一个范围

scope :available, where("transaction_date IS NULL OR transaction_date = ''")
scope :total_available, available.sum("amount")
Run Code Online (Sandbox Code Playgroud)

我收到了错误

NoMethodError: undefined method `default_scoped?' for 22:Fixnum
Run Code Online (Sandbox Code Playgroud)

或者如果我更改范围,那么sum("amount").available我就会收到错误

NoMethodError: undefined method `available' for 55:Fixnum
Run Code Online (Sandbox Code Playgroud)

我也可以:total_available通过添加定义的条件来使范围工作:available,但这不是很干.

我在这里错过了什么?

aggregate arel ruby-on-rails-3

0
推荐指数
1
解决办法
2669
查看次数

通过列[R]中重复出现的元素折叠数据框

我被困在一个小东西里.我在R中有一个像这样的数据框

chrom exonCount
chr1         3
chr1         4
chr1         5
chr1         5
chr1         9
chr1        10
chr2         7
chr2        11
chr2        13
chr3         7
chr4         7
Run Code Online (Sandbox Code Playgroud)

我只想输出为

chr1        36
chr2        31
chr3         7
chr4         7
Run Code Online (Sandbox Code Playgroud)

我假设聚合函数可以做到这一点,但我在使用中丢失了.

谢谢

aggregate r dataframe

0
推荐指数
1
解决办法
323
查看次数

R:组合聚合

我们可以说有以下内容:

time=c(20060200,20060200,20060200,20060200,20060200,20060300,20060400,20060400,20060400)
bucket=c(1,1,2,2,1,3,3,3,1)
rate=c(0.05,0.04,0.04,0.05,0.06,0.01,0.07,0.08,0.03)




       time bucket rate
1: 20060200      1 0.05
2: 20060200      1 0.04
3: 20060200      2 0.04
4: 20060200      2 0.05
5: 20060200      1 0.06
6: 20060300      3 0.01
7: 20060400      3 0.07
8: 20060400      3 0.08
9: 20060400      1 0.03
Run Code Online (Sandbox Code Playgroud)

我知道如何通过这样的方式将速率汇总到时间或桶

test=data.table(time,bucket,rate)
b=test[,list(x=sum(rate)),by=bucket]
Run Code Online (Sandbox Code Playgroud)

我的问题是如何聚合到桶,同时保持时间不变.
所以我想要的是这样的:

20060200  1  0.15
20060200  2  0.09
20060200  3  0
20060300  1  0
20060300  2  0
20060300  3  0.01 
20060400  1  0.03
20060400  2  0
20060400  3  0.15
Run Code Online (Sandbox Code Playgroud)

希望这很清楚,谢谢

aggregate r data.table

0
推荐指数
1
解决办法
133
查看次数

如何在sql中显示一周一周

我需要在一周内显示GP总和的两个计算列,在前一个列中显示另一列

我认为我的方式是正确的,但我错过了一些东西

我想让我的结果像这样::

| WEEK |日本|澳大利亚| GB |

| PREV | 22 | 32 | 23 |

| CUR | 12 | 15 | 12 |

我的sql是这个我相信我可能需要透视数据

SELECT 
  (SUM(`GP`), `gptw`) 
FROM
  (SELECT 
    `GP`,
    `Country` 
  FROM
    `Finance` 
  WHERE DATE >= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) + 6 DAY 
    AND DATE < CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 1 DAY 
  GROUP BY `Country`) AS lastweeek 
  INNER JOIN 
    (SELECT 
      SUM(`GP`) AS `gptw`,
      `Country` 
    FROM
      Finance 
    WHERE DATEDIFF(NOW(), `date`) < 4 
    GROUP BY `Country`) AS `thisweek` 
Run Code Online (Sandbox Code Playgroud)

mysql datetime aggregate time-series

0
推荐指数
1
解决办法
3258
查看次数

合并hstore多行数据

假设我有一个具有此定义的表:

CREATE TABLE test (
  values HSTORE NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

想象一下,我插入一些记录并得到以下结果:

values
-----------------------------
"a"=>"string1","b"=>"string2"
"b"=>"string2","c"=>"string3"
Run Code Online (Sandbox Code Playgroud)

有什么办法可以使聚合查询为我提供一个新的hstore,其中包含所有行的合并键(和值)。

伪查询:

SELECT hstore_sum(values) AS value_sum FROM test;
Run Code Online (Sandbox Code Playgroud)

所需结果:

value_sum
--------------------------------------------
"a"=>"string1","b"=>"string2","c"=>"string3"
Run Code Online (Sandbox Code Playgroud)

我知道每个键具有不同值的潜在冲突,但是在我的情况下,选择值的顺序/优先级并不重要(它甚至不必是确定性的,因为对于同一键,它们将是相同的) 。

这可能是开箱即用的,还是您必须使用某些特定的自制SQL函数或其他函数来完成?

postgresql aggregate hstore

0
推荐指数
1
解决办法
1816
查看次数

R计算data.table中的字段

我有一个数据表可以减少到这个:

set.seed(1); 
dt<-data.table(form=c(1,1,1,2,3,3,3,4,4,5),
    mx=c("a","b","c","d","e","f","g","e","g","b"),
    vr=runif(10,100,200),
    usr=c("l","l","l","m","o","o","o","l","l","m"),
    type=c("A","A","A","C","C","C","C","C","C","A"))
Run Code Online (Sandbox Code Playgroud)

我可以生成一个表格:

dt[,
    list(n.form=length(unique(form)),n.mx=length(unique(mx)),tot.vr=sum(vr)),
    by=usr]
Run Code Online (Sandbox Code Playgroud)

我无法计算的是A类公式的数量(每行是观察值,form是公式数).我试过了:

dt[,
    list(n.form=length(unique(form)),n.mx=length(unique(mx)),tot.vr=sum(vr),n.A=sum(type=="A"),
    by=usr]
Run Code Online (Sandbox Code Playgroud)

并且:

dt[,
    list(n.form=length(unique(form)),n.mx=length(unique(mx)),tot.vr=sum(vr),n.A=length(unique(type=="A"))),
    by=usr]
Run Code Online (Sandbox Code Playgroud)

但是没有一个考虑到发现的"A"数量需要与唯一的公式(form)数量相关的事实.

我想要的结果是:

   usr n.form n.mx   tot.vr n.A
1:   l      2    5 750.0398   1
2:   m      2    2 296.9994   1
3:   o      1    3 504.4747   0
Run Code Online (Sandbox Code Playgroud)

但我找不到实现它的方法.任何光棚都非常受欢迎.谢谢,

======= 编辑添加 ========

我想知道有多少公式(唯一数字dt$form)是"A"类型(因此我可以计算总公式中的一部分).直接数(sum)是类型A 的观察总数,而存在(any)给出了我是否至少有一个类型为"A" 的公式,而不是该类型的公式数(这是我想要的) ).请注意,任何给定的公式将始终为"A"或"C"类型(在一个公式中不是混合类型)

aggregate r data.table

0
推荐指数
1
解决办法
62
查看次数

聚合两个以上的Java 8属性

我很简单

 class Per{
    int a;
    long b;
    double c;
    String d;
}
Run Code Online (Sandbox Code Playgroud)

假设我有3000个类型的对象Per并收集在一个List<Per> pers

现在我想实现: -

  • 如果跳过对象为空或dnullblank
  • 总和 a
  • 总和 b
  • 执行的操作的聚合值 c

老路是

int totalA = 0; long totalB = 0l; long totalC = 0l;
    for (Per per : pers) {
        if (per.d != null && !per.d.trim().equals("")) {
            totalA += per.a;
            totalB += per.b;
            totalC += someOperation(per.c);
        }
    }
Run Code Online (Sandbox Code Playgroud)

someOperation 实施并不重要,因为它可能简单或复杂.

如何通过Java8流和lambda表达式实现这一目标?

一个可能的答案是这样的

int totalA = 0; long totalB=0l;
     pers.stream().filter(p->{
         if(p …
Run Code Online (Sandbox Code Playgroud)

lambda field aggregate sum java-8

0
推荐指数
1
解决办法
122
查看次数

与PostgreSQL有一对多关系的SQL查询

我正在尝试通过与line_items表相关的查询来汇总购物车商品列表。我已经提取了一个用例的简单示例:

我的预期结果将如下所示:

cart_id  cart_total shopper_id items                                                        payment_id
      1         345         34 [{"name":"egg","price:"39"}]                                 AS34gsdVSWET4
      2          54         45 [{"name":"biscut","price:"5"},{"name":"apple","price:"15"}]  JFHERHJE$Y#$H
Run Code Online (Sandbox Code Playgroud)

给定一个模式和数据,例如:

推车:

id  cart_total shopper_id
1   39         34
2   20         45
Run Code Online (Sandbox Code Playgroud)

line_items:

id  cart_id    item_name item_price
1   1          egg       39
2   2          biscut     5
3   2          apple     15
Run Code Online (Sandbox Code Playgroud)

付款:

id  cart_id payment_id
1   1       AS34gsdVSWET4
2   2       JFHERHJE$Y#$H
Run Code Online (Sandbox Code Playgroud)

如何获取所有购物车列表并获取特定的购物车列表shopperId

sql postgresql json aggregate

0
推荐指数
1
解决办法
140
查看次数