我想知道如果你想在查询中使用聚合,SQL Server是否知道'缓存',如果再次使用它们.
例如,
Select Sum(Field),
Sum(Field) / 12
From Table
Run Code Online (Sandbox Code Playgroud)
SQL Server是否知道它已经在第一个字段上计算了Sum函数,然后将它除以第二个字段的12?或者它会再次运行Sum函数然后除以12?
谢谢
我知道有一种简单的方法可以做到这一点......但是,我无法弄明白.
我的R脚本中有一个数据帧,如下所示:
A B C
1.2 4 8
2.3 4 9
2.3 6 0
1.2 3 3
3.4 2 1
1.2 5 1
Run Code Online (Sandbox Code Playgroud)
请注意,A,B和C是列名.而我正试图得到这样的变量:
sum1 <- [the sum of all B values such that A is 1.2]
num1 <- [the number of times A is 1.2]
Run Code Online (Sandbox Code Playgroud)
有什么简单的方法吗?我基本上想要得到一个如下所示的数据框:
A num totalB
1.2 3 12
etc etc etc
Run Code Online (Sandbox Code Playgroud)
其中"num"是特定A值出现的次数,"totalB"是给定A值的B值之和.
我有一个如下数据框(20,000行乘49列).每行具有唯一的名称(ID),每个ID在3列中具有3个重复读数(例如D15C D15C.1 D15C.2).组合名称的前4个字母("D15C")是组名.我需要按组名称对列进行平均(例如,平均D15C,D15C.1和D15.2得到D15C),因此最终表将合并为49列中的16列.
ID D04C D04C.1 D08H D08H.1 D08H.2 D15C D15C.1 D15C.2 D15L D15L.1 D15L.2
1 1367452_at 11.11 10.93 11.85 10.94 10.87 10.73 10.62 10.85 10.73 10.77 10.52
2 1367453_at 9.65 9.94 9.78 9.68 9.67 9.86 9.71 9.82 9.74 9.71 9.76
3 1367454_at 10.19 10.36 9.68 10.07 10.08 10.35 10.26 10.32 10.27 10.19 10.47
(… 20000 rows)
Run Code Online (Sandbox Code Playgroud)
我将其转置并编辑到以下数据框以便使用聚合:
ID 1367452_at 1367453_at 1367454_at ... ...
1 D04C 11.11 9.65 10.19
2 D04C 10.93 9.94 10.36
3 D08H 11.85 9.78 9.68
4 …Run Code Online (Sandbox Code Playgroud) class A
{
public:
A(){}
private:
int i;
};
A a[8];
Run Code Online (Sandbox Code Playgroud)
C++ 11标准8.5.1.1说:
"聚合是一个数组或类(第9条),没有用户提供的构造函数(12.1),非静态数据成员(9.2)没有大括号或相等的初始化,没有私有或受保护的非静态数据成员(子句) 11),没有基类(第10条),也没有虚函数(10.3)."
作为一个数组,是一个聚合?我想不是,但标准是肯定的.
我有一个包含3列的数据框:custId,saleDate,DelivDateTime.
> head(events22)
custId saleDate DelivDate
1 280356593 2012-11-14 14:04:59 11/14/12 17:29
2 280367076 2012-11-14 17:04:44 11/14/12 20:48
3 280380097 2012-11-14 17:38:34 11/14/12 20:45
4 280380095 2012-11-14 20:45:44 11/14/12 23:59
5 280380095 2012-11-14 20:31:39 11/14/12 23:49
6 280380095 2012-11-14 19:58:32 11/15/12 00:10
Run Code Online (Sandbox Code Playgroud)
这是输入:
> dput(events22)
structure(list(custId = c(280356593L, 280367076L, 280380097L,
280380095L, 280380095L, 280380095L, 280364279L, 280364279L, 280398506L,
280336395L, 280364376L, 280368458L, 280368458L, 280368456L, 280368456L,
280364225L, 280391721L, 280353458L, 280387607L, 280387607L),
saleDate = structure(c(1352901899.215, 1352912684.484, 1352914714.971,
1352925944.429, 1352925099.247, 1352923112.636, 1352922476.55,
1352920666.968, 1352915226.534, 1352911135.077, 1352921349.592, …Run Code Online (Sandbox Code Playgroud) 我有3个数据框(行:站点,列:物种名称)的站点内的物种丰富度.行号相同,但列号不同,因为并非所有物种都在所有三个数据帧中.我想将它们合并到一个数据框架中,总结出相同物种的丰富程度.例如:
data.frame1
Sp1 Sp2 Sp3 Sp4
site1 1 2 3 1
site2 0 2 0 1
site3 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
data.frame2
Sp1 Sp2 Sp4
site1 0 1 2
site2 1 2 0
site3 1 1 1
Run Code Online (Sandbox Code Playgroud)
data.frame3
Sp1 Sp2 Sp5 Sp6
site1 0 1 1 1
site2 1 1 1 5
site3 2 0 0 0
Run Code Online (Sandbox Code Playgroud)
我想拥有的是:
Sp1 Sp2 Sp3 Sp4 Sp5 Sp6
site1 1 4 3 3 1 1
site2 2 5 0 1 1 5
site3 4 …Run Code Online (Sandbox Code Playgroud) 我有一个列表,其中每个值是一个元组列表.例如,这是我为密钥提取的值:
[('1998-01-20',8) , ('1998-01-22',4) , ('1998-06-18',8 ) , ('1999-07-15' , 7), ('1999-07-21',1) ]
Run Code Online (Sandbox Code Playgroud)
我也对列表进行了排序.现在我想聚合这样的值:
[('1998-01' , 12 ) , ('1998-06' ,8 ) , ('1999-07',8 )]
Run Code Online (Sandbox Code Playgroud)
从某种意义上说,我想按月分组我的元组,一起总结每个月的整数,我读过有关groupby的内容,我认为它对我的数据结构无法帮助,因为我不知道我会做什么面对我的列表,所以我想找个方法说:如果i [0] [:6]相等,从元组的第一个元素开始:sum i [1].但是我很难实现这个想法.
for i in List :
if i[0][:6] # *problem* I don't know how to say my condition :
s=sum(i[1]) #?
Run Code Online (Sandbox Code Playgroud)
我很感激任何建议,因为我是python的新用户!
我正在将我的R代码从data.frame+ 更改plyr为data.tables,因为我需要一种更快,更有内存效率的方法来处理大数据集.不幸的是,我的R技能非常有限,而且我整天都遇到了问题.如果这里的SO专家可以启发,将不胜感激.
我的目标
我的测试代码
DT = data.table( a=LETTERS[c(1,1,1:4)],b=4:9, c=3:8, d = rnorm(6),
e=LETTERS[c(rep(25,3),rep(26,3))], key="a" )
GrpVar1 <- "a"
GrpVar2 <- "e"
VarToMax <- "b"
VarToAve <- c( "c", "d")
Run Code Online (Sandbox Code Playgroud)
我尝试了什么,但没有为我工作
DT[, list( b=max( b ), c=mean(c), d=mean(d) ), by=c( GrpVar1, GrpVar2 ) ]
# Hard-code col name - not what I want
DT[, list( max( get(VarToMax) ), mean( get(VarToAve) )), by=c( GrpVar1, GrpVar2 ) ]
# Col names become …Run Code Online (Sandbox Code Playgroud) 在CQRS事件存储中,"聚合"是否包含事件的汇总视图或仅仅是对这些事件边界的引用?(组ID)
投影是事件的视图或表示,因此在聚合表示对我有意义的边界的情况下,而如果聚合包含当前的汇总状态,我会对两者之间的重复感到困惑.
我有一个pandas数据框,如下所示:
X Y
71455 [334.0, 319.0, 298.0, 323.0]
71455 [3.0, 8.0, 13.0, 10.0]
57674 [54.0, 114.0, 124.0, 103.0]
Run Code Online (Sandbox Code Playgroud)
我想执行一个聚合groupby,以元素方式添加存储在Y列中的列表.代码我尝试过:
df.groupby('X').agg({'Y' : sum})
Run Code Online (Sandbox Code Playgroud)
结果如下:
Y
X
71455 [334.0, 319.0, 298.0, 323.0, 75.0, 55.0, ...
Run Code Online (Sandbox Code Playgroud)
所以它已经连接了列表而不是按元素加总.然而,预期的结果是:
X Y
71455 [337.0, 327.0, 311.0, 333.0]
57674 [54.0, 114.0, 124.0, 103.0]
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法,但无法按预期工作.
aggregate ×10
r ×5
data.table ×2
dataframe ×2
list ×2
python ×2
arrays ×1
c++ ×1
c++11 ×1
cqrs ×1
event-store ×1
math ×1
mean ×1
merge ×1
pandas ×1
performance ×1
plyr ×1
projection ×1
sql ×1
sql-server ×1
standards ×1