请帮助我进行健全检查.假设有多对多的关系:
Post,PostTagAssoc,标签http://www.codingthewheel.com/pics/many_to_many.gif
什么是最简洁的方法(使用LINQ to SQL)来获得结果集,为每个标签(或帖子)显示分配给它的帖子(或标签)的总数?
谢谢!
在Postgresql中,您可以使用创建其他聚合函数
CREATE AGGREGATE name(...);
Run Code Online (Sandbox Code Playgroud)
但是如果聚合已经存在于数据库中,则会出现错误,因此如何检查Postgres数据库中是否已存在聚合?
我正在努力设计这个系统,其中地址是最重要的信息.现在在这种情况下,地址不仅仅是几行字符串.我们将市政当局(代码,姓名),地区(邮政编码,姓名),街道(代码,姓名),门牌号码存放在属于市政的特定区域的街道上.这是一个非常规范化的计划.
因此,我们将实体Municipal,District,Street和HouseNumber各自相互关联,为一个人(或其他人)定义一个完整的地址.
现在我一直在试图找出一个名为Address的聚合根是否有意义?然后,地址实体(聚合根)将引用HouseNumber,Street,District和Municipal.然后一个人将与一个地址相关联.
严格来说,这个聚合根不是必需的,但是如果我没有它,我将不得不遍历许多对象以获得完整的地址.根据该参数创建聚合根是否有意义?
在这种情况下,一个人永远不会引用除聚合根之外的任何东西,但UI可能只显示市政当局(浏览地址时等).这是违反总体根本想法的吗?
我真的很喜欢你的建议并接受这个问题.任何帮助都感激不尽!
关于我的问题的另一个讨论的一点点更新:
需要在聚合中管理一些不变量.例如; 我不能在一个区/市的街道上有一个门牌号,邮政箱位于另一个不同的区/市.因此,在为地址/人员分配邮箱时,我需要确保他们在同一地区.
还有一些一致性边界(如果我理解这个概念的正确方法).如果我有地址,则必须在街道上的一个区(在该区)中有一个门牌号码.街道可以跨越多个区域,因此确保该街道上的门牌号位于正确的区域非常重要.
有关设计聚合的更新:
门牌号实际上是地址的入口点.门牌号码与街道和地区相关联.所以一个人与门牌号码相关联.我还想要定义的是,如果一个人对该门牌号码有"邮政责任".引入聚合根地址,使该人与该关联而不是门牌号.在数据库中,聚合地址将包含与门牌号的1-1关联,并且地址对人员具有1-*.我应该在哪里存储表明该人有邮政责任的价值?我应该在地址汇总中这样做吗?或者你会把它放在哪里?我的实体也是如此 - 我应该在哪里指出该人是否有邮政责任?
我尝试在PostgreSQL中为product(*)创建聚合.我的行的字段类型是"双精度"
所以,我尝试过:
CREATE AGGREGATE nmul(numeric)
(
sfunc = numeric_mul,
stype = numeric
);
Run Code Online (Sandbox Code Playgroud)
当我启动查询时,结果如下:
ERROR: function nmul(double precision) does not exist
LINE 4: CAST(nmul("cote") AS INT),
Run Code Online (Sandbox Code Playgroud)
谢谢
如何使用R来查找物种的值总和?我有62种名称,并希望在栖息地中添加每个物种的基础面积.我试过了
aggregate(file name, species, FUN=sum, simplify=TRUE)
Run Code Online (Sandbox Code Playgroud)
以及它的许多变化,但它总是说它找不到species(我的数据集中的列标题).列表太长,无法添加为输入; 我希望程序使用我的列信息.我的数据集看起来像这样:
Species BA
sp1 0.5
sp1 0.2
sp2 0.1
Run Code Online (Sandbox Code Playgroud) 我有一个2.5M x 13矩阵,我试图通过ID变量聚合.起初我尝试使用ddply,但我的记忆爆炸了.之后我尝试使用data.table,它运行得更快:
data <- as.data.table(data)
key(data) <- "ID"
agg<-mydata[,mutate(.SD,
start = min(Date))
, by = ID]
Run Code Online (Sandbox Code Playgroud)
现在没有内存问题,到目前为止,在具有4.0GB内存的英特尔i5 2.50GHz上运行它需要超过4个小时.操作系统是windows 7,所以没有并行计算.
我究竟做错了什么?
我看了下面的问题:
我有数据
p.date p.instrument p.sector \
11372 2013-02-15 00:00:00 A Health Care
11373 2013-02-15 00:00:00 AA Materials
11374 2013-02-15 00:00:00 AAPL Information Technology
11375 2013-02-15 00:00:00 ABBV Health Care
11376 2013-02-15 00:00:00 ABC Health Care
p.industry p.retn p.pfwt b.bwt
11372 Health Care Equipment & Services -5.232929 NaN 0.000832
11373 Aluminum 0.328947 NaN 0.000907
11374 Computer Hardware -1.373927 NaN 0.031137
11375 Pharmaceuticals 2.756020 NaN 0.004738
11376 Health Care Distribution & Services -0.371179 NaN 0.000859
Run Code Online (Sandbox Code Playgroud)
但是当我尝试:
test1.groupby("p.sector").agg({'r1': lambda x: x['p.pfwt'].sum()})
Run Code Online (Sandbox Code Playgroud)
我收到了错误 …
我试图总结两个具有一些匹配索引的系列,但有些是独特的.例如:
a = pd.Series([0.2, 0.1, 0.3], index=['A', 'B', 'C'])
b = pd.Series([0.2, 0.2], index=['A', 'D'])
Run Code Online (Sandbox Code Playgroud)
请注意,索引A同时位于a和b中.我想最终得到一个新系列,其中包含所有索引的总和:
A 0.4
B 0.1
C 0.3
D 0.2
dtype: float64
Run Code Online (Sandbox Code Playgroud)
通知指数A是a和b的总和(0.2 + 0.2),而B,C和D是原始值.如果我尝试做:
c = a + b
Run Code Online (Sandbox Code Playgroud)
我得到索引A的正确值,但是NaN表示所有其他值.有关最佳方法的任何想法吗?
我想知道是否有办法根据向量中的位置提取一个值,所以例如我有一个带有两个向量的数据框,我将它们从原始的V1和V2分组,就像一个ORDER在SQL中的BY.当我尝试按V1组类型获得第3分钟时出现问题.
有序数据框......
V1 V2
Ford 18
Ford 16
Ford 15
Ford 14
Ford 12
**Ford 5**
Ford 2
Ford 1
Nisan 10
Nisan 9
Nisan 8
Nisan 7
Nisan 6
**Nisan 5**
Nisan 4
Nisan 3
Toyota 20
Toyota 19
Toyota 15
Toyota 12
Toyota 11
**Toyota 10**
Toyota 6
Toyota 2
Run Code Online (Sandbox Code Playgroud)
结果我想在新数据框中,每个变量的第3分钟值...
V1 V2
Ford 5
Nisan 5
Toyota 10
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我的数据结构如下(这些只是示例数据,因为原始数据是秘密的)
id | crime | location | crimedate
------------------------------
1 | Theft | public | 2019-01-04
1 | Theft | public | 2019-02-06
1 | Theft | public | 2019-02-20
1 | Theft | private | 2019-03-10
1 | Theft | private | 2019-03-21
1 | Theft | public | 2019-03-01
1 | Theft | private | 2019-03-14
1 | Theft | public | 2019-06-15
1 | Murder | private | 2019-01-04
1 | Murder | private | 2019-10-20
1 …Run Code Online (Sandbox Code Playgroud) aggregate ×10
r ×3
pandas ×2
postgresql ×2
python ×2
data.table ×1
dataframe ×1
dictionary ×1
linq-to-sql ×1
many-to-many ×1
numpy ×1
oop ×1
sas ×1
sgplot ×1
sql ×1
sum ×1