想象一下,我有一个包含{id,username,firstname,lastname}的客户的数据库表
如果我想找到有多少个不同名字的实例我可以做:
select firstname,count(*) from Customers group by 2 order by 1;
username | count(*)
===================
bob | 1
jeff | 2
adam | 5
Run Code Online (Sandbox Code Playgroud)
如何编写相同的查询只返回多次出现的名字?即在上面的例子中只返回jeff和adam的行.
有没有办法将多个聚合聚合到一个时间跨度?
Dim times = {
New TimeSpan(1, 0, 0),
New TimeSpan(1, 10, 0),
New TimeSpan(1, 50, 0),
New TimeSpan(0, 20, 0),
New TimeSpan(0, 10, 0)
}
Dim sum As New TimeSpan
For Each ts In times
sum = sum.Add(ts)
Next
'That's what I desire:
sum = times.Sum
sum = times.Aggregate
Run Code Online (Sandbox Code Playgroud)
我正在寻找一些我不知道的内置功能.
更新 请阅读我对Reed Copsey答案的评论.
假设我要创建一个行动网站,会员可以在其中竞标物品。为了对此域建模,我有三个类:成员,项目和出价。我的头脑风暴将是这样的:
考虑到所有这些,很明显,由于Member和Item对象是独立的,因此我们可以认为它们是集合根。出价将是其中一项的一部分。很明显,但是现在让我感到困惑的是,我应该选择哪个聚合根?项目或会员?
这是Apress的Pro ASP.NET MVC 3 Framework书中的示例,其执行方式如下所示:

给出以下代码:
public class Member
{
public string LoginName { get; set; } // The unique key
public int ReputationPoints { get; set; }
}
public class Item
{
public int ItemID { get; private set; } // The unique key
public string Title { get; set; }
public string Description { get; set; }
public DateTime AuctionEndDate { get; set; }
public IList<Bid> Bids { get; set; } …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,具有以下结构,有两列data1和data2.以下是示例数据:
data1 data2
800000 1
800030 0.956521739130435
1000000 0.480916030534351
1686626 0.496
1687492 0.174757281553398
2148463 0.0344827586206897
2850823 0.05
2959087 0.0416666666666667
Run Code Online (Sandbox Code Playgroud)
我想计算第二行的平均值,即data2每1000000计数data1.这意味着它应该给出前2行然后接下来3行的平均值,然后给出接下来的3行,依此类推......
输出应该是一个数据帧,其最后一个值在区间1000000内,并且该区间的平均值data2:样本输出如下所示:
800030 0.97826087
1687492 0.38389110
2959087 0.04204981
Run Code Online (Sandbox Code Playgroud)
在R中可以做一些帮助吗?
例如,我有一个数据集
Data <- data.frame(
groupname = as.factor(sample(c("a", "b", "c"), 10, replace = TRUE)),
someuser = sample(c("x", "y", "z"), 10, replace = TRUE))
groupname someuser
1 a x
2 b y
3 a x
4 a y
5 c z
6 b x
7 b x
8 c x
9 c y
10 c x
Run Code Online (Sandbox Code Playgroud)
如何汇总数据,以便获得:
groupname someuser
a x
b x
c x
Run Code Online (Sandbox Code Playgroud)
这是每个组名最常见的值。
PS:根据我的设置,我只能使用2个包-plyr和lubridate
我有一个800k行的数据集,每个都有一个时间戳.数据涵盖一年的时间范围.
在准备我想要制作的堆积区域图时,我想创建26个子组(例如,两周间隔).在这些子组中,我想找到5个类中的值的频率.
例如:在前两周,这些值的百分比是> x && <= y,有多少是> y && <= z等.
所有这些都应该导致ggplot2库及其geom_area()函数创建的堆积区域图.
这是数据集的头部:
date transaction_volume transaction_costs
47 2015-01-01 3.985826 0.03157
59 2015-01-01 3.955749 0.03157
71 2015-01-01 0.315700 0.03157
72 2015-01-01 0.315700 0.03157
73 2015-01-01 0.315700 0.03157
74 2015-01-01 0.315700 0.03157
Run Code Online (Sandbox Code Playgroud) 你好我有一个方法来计算数据库中的值,我使用jooq然后迭代结果来进行求和,聚合一些字段.我的问题是我可以在jooq语句中执行所有操作,而不必遍历我的resultSet并手动添加它们吗?这是我到目前为止所做的:谢谢.
BigDecimal dealDiscountAmt = BigDecimal.ZERO;
BigDecimal standardAmtOneTimeTrue = BigDecimal.ZERO;
BigDecimal standardAmtOneTimeFalse = BigDecimal.ZERO;
BigDecimal oneTimeFalseX12 = BigDecimal.ZERO;
/** Dao for jooq access to db. */
@Resource(name = "dmDaoContext")
protected DSLContext dmDao_;
List<JDealMetricWorkflowCriteriaRecord> retValList = new ArrayList<JDealMetricWorkflowCriteriaRecord>();
JDealMetricWorkflowCriteriaRecord newDealRecord = new JDealMetricWorkflowCriteriaRecord();
List<JMetricServicePxvRecord> records = dmDao_.selectFrom(METRIC_SERVICE_PXV)
.where(METRIC_SERVICE_PXV.DEAL_ID.eq(dealId), METRIC_SERVICE_PXV.PRODUCED_DATETIME.eq(whenProduced))
.fetch();
for (JMetricServicePxvRecord record : records) {
//sum all dealDiscounts
dealDiscountAmt = dealDiscountAmt.add(record.getStandardTotalPxv().subtract(record.getProposedTotalPxv());
if (record.getOneTime()) {
//sum all dealDiscounts if oneTime is true
standardAmtOneTimeTrue = standardAmtOneTimeTrue.add(record.getStandardTotalPxv().subtract(record.getProposedTotalPxv());
} else {
//sum all dealDiscounts if …Run Code Online (Sandbox Code Playgroud) 我的mongodb集合上有一个这样的json文档:更新文档:
{
"_id" : ObjectId("59da4aef8c5d757027a5a614"),
"input" : "hi",
"output" : "Hi. How can I help you?",
"intent" : "[{\"intent\":\"greeting\",\"confidence\":0.8154089450836182}]",
"entities" : "[]",
"context" : "{\"conversation_id\":\"48181e58-dd51-405a-bb00-c875c01afa0a\",\"system\":{\"dialog_stack\":[{\"dialog_node\":\"root\"}],\"dialog_turn_counter\":1,\"dialog_request_counter\":1,\"_node_output_map\":{\"node_5_1505291032665\":[0]},\"branch_exited\":true,\"branch_exited_reason\":\"completed\"}}",
"user_id" : "50001",
"time_in" : ISODate("2017-10-08T15:57:32.000Z"),
"time_out" : ISODate("2017-10-08T15:57:35.000Z"),
"reaction" : "1"
Run Code Online (Sandbox Code Playgroud)
}
我需要在intent.intent字段上执行group,我正在使用Rstudio和mongolite库.我试过的是:
pp = '[{"$unwind": "$intent"},{"$group":{"_id":"$intent.intent", "count": {"$sum":1} }}]'
stats <- chat$aggregate(
pipeline=pp,
options = '{"allowDiskUse":true}'
)
print(stats)
Run Code Online (Sandbox Code Playgroud)
但它不起作用,上面代码的输出是
_id count
1 NA 727
Run Code Online (Sandbox Code Playgroud) 我正在尝试了解实体和集合之间的关系的最佳实践。
设想一个设计,其中有一个由两个实体组成的Product Aggregate:
总根:产品
子实体:Sku
那里的产品可以有很多Skus。Skus和产品的零件号和名称是不变的,因为更改其中一个的名称必须以事务方式确保另一个已更新。同样,产品集合需要确保绝不存在重复的Skus。
我们还有另一个聚合:StorageLocation。存储1个或更多Skus的位置。但是,重要的是,StorageLocation知道要存储的特定Sku。即。在加拿大的StorageLocation应该存储该国本地的Sku,而不是用于美国市场的Sku。
在我看来,这意味着StorageLocation需要保留对Sku的引用(因为对产品汇总根的引用本身并未提供足够的信息来确定要存储的Sku)。
根据我的阅读,这似乎打破了另一个聚合对象不应持有对另一个聚合对象中非根实体的引用的原则。所以问题:
谢谢
我有一个ID,类型和面积的数据框,我想一次执行两次操作
ID Type Area
1 Aa 0.02
2 Ag 0.12
2 Ag 0.14
2 Ag 0.80
2 Bm 0.20
2 Xm 0.13
Run Code Online (Sandbox Code Playgroud)
预期的结果是
ID Type count area
1 Aa 1 0.02
2 Ag 3 1.06 (sum)
2 Bm 1 0.20
2 Xm 1 0.13
Run Code Online (Sandbox Code Playgroud)
我有多达100-150个ID,并且每种类型,具有相同ID的计数和基本面积都不同,什么是最好的方法来同时执行总和和计数并在数据帧中保留类型和ID?
谢谢