我有一个类似的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) 鉴于我有一个包含用户数据的表,如下所示:
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) 我正在考虑一个链接两个范围的简单问题(Rails 3.2.5).
我有一个名为模型Point与田amount和transaction_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,但这不是很干.
我在这里错过了什么?
我被困在一个小东西里.我在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)
我假设聚合函数可以做到这一点,但我在使用中丢失了.
谢谢
我们可以说有以下内容:
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)
希望这很清楚,谢谢
我需要在一周内显示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) 假设我有一个具有此定义的表:
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函数或其他函数来完成?
我有一个数据表可以减少到这个:
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"类型(在一个公式中不是混合类型)
我很简单
class Per{
int a;
long b;
double c;
String d;
}
Run Code Online (Sandbox Code Playgroud)
假设我有3000个类型的对象Per并收集在一个List<Per> pers
现在我想实现: -
d为null或blankabc老路是
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) 我正在尝试通过与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?