标签: aggregate

我应该如何在C#中实现我的存储库(DDD)来处理同一聚合根的多个调用

我的项目中的哪个类应该负责跟踪已经创建了哪些聚合根,以便不为同一个实体创建两个实例.我的存储库应该保留它创建的所有聚合的列表吗?如果是,我该怎么做?我是否使用单一的存储库(听起来不对我)?另一种选择是封装这个"缓存"在其他地方是其他类吗?这个类看起来会是什么样的,它适合什么样的模式?

我没有使用O/R映射器,所以如果有一种处理它的技术,我需要知道它是如何做到的(如它使用的模式)能够使用它

谢谢!

c# domain-driven-design aggregate repository ddd-repositories

6
推荐指数
1
解决办法
1561
查看次数

元组聚合构造推断类型和elides移动/复制构造函数调用?

考虑以下mypair类(我不确定这是否是最好的做事方式,但似乎有效):

#include <iostream>

struct A
{
  A() {}
  A(const A&) { std::cout << "Copy" << std::endl; }
  A(A&&) { std::cout << "Move" << std::endl; }
  std::string s;
};

template <class T0, class T1>
struct mypair
{
  T0 x0;
  T1 x1;
};

template <class T0, class T1, int N = -1>
struct get_class {};

template<class T0, class T1>
struct get_class<T0, T1, 0>
{
  static T0& get_func(mypair<T0, T1>& x) { return x.x0; }
  static const T0& get_func(const mypair<T0, T1>& x) …
Run Code Online (Sandbox Code Playgroud)

c++ optimization tuples aggregate c++11

6
推荐指数
1
解决办法
605
查看次数

更快的方法来创建通过id聚合列的变量

有更快的方法吗?我想这是不必要的慢,并且这样的任务可以通过基本功能完成.

df <- ddply(df, "id", function(x) cbind(x, perc.total = sum(x$cand.perc)))
Run Code Online (Sandbox Code Playgroud)

我是很新的R.我已经看过了by(),aggregate()tapply(),但并没有让他们在所有或我想要的方式工作.我希望将总和附加到原始数据帧,而不是返回较短的向量.做这个的最好方式是什么?

编辑:这是应用于我的数据的答案的速度比较.

> # My original solution
> system.time( ddply(df, "id", function(x) cbind(x, perc.total = sum(x$cand.perc))) )
   user  system elapsed 
 14.405   0.000  14.479 

> # Paul Hiemstra
> system.time( ddply(df, "id", transform, perc.total = sum(cand.perc)) )
   user  system elapsed 
 15.973   0.000  15.992 

> # Richie Cotton
> system.time( with(df, tapply(df$cand.perc, df$id, sum))[df$id] )
   user  system elapsed 
  0.048   0.000   0.048 

> # John
> system.time( …
Run Code Online (Sandbox Code Playgroud)

performance aggregate r plyr

6
推荐指数
2
解决办法
2945
查看次数

结合R中标准偏差的现有功能?

我有4个具有已知手段和标准偏差的人群.我想知道伟大的意思和伟大的sd.平均值显然很容易计算,但R有一个方便的效用函数weighted.mean().是否存在组合标准偏差的类似功能?

计算并不复杂,但现有的功能可以使我的代码更清晰,更容易理解.

奖金问题,你用什么工具来搜索这样的功能?我知道它必须在那里,但我做了很多搜索,但找不到它.谢谢!

aggregate r standard-deviation

6
推荐指数
2
解决办法
3931
查看次数

获取SQL查询中每个不同记录的最大平均值

我有一些表格,其中包含有关球员的数据以及本赛季他们在联赛中在保龄球中心击败的比赛.这个特定查询的用途是对男性和女性今年的前X平均值进行排序.我已经把这一切都搞定了,但是在某些特定情况下,当一些球员在多个联赛中打球并且在顶级X中有超过一个平均值时,我仍然存在问题.

显然,我只想列出给定球员的最佳平均值,所以如果球员A在联盟ABC中的平均得分最高,而联盟DEF的平均得分为198,那么我只想要列出200.

这是我想要更改的查询的简化版本,因为现在我必须手动删除重复项或者我必须用另一种语言编写分类器,但我宁愿在纯SQL中执行此操作.(我只从该示例的查询中删除了不相关的信息):

SELECT playerId, ROUND(AVG(score),2)Average, season, leagueName, COUNT(score)NumGames FROM Scores
WHERE season = '2011-2012' AND score > -1
GROUP BY season, playerID, leagueName
ORDER BY Average DESC LIMIT 0,30
Run Code Online (Sandbox Code Playgroud)

基本上,该Scores表包含每个单独的游戏,一个playerId,玩游戏的季节和leagueName(以及本例中不需要的其他列).

WHERE是为了确保比赛在本赛季进行,并且得分为正(-1表示人们不在场时).我根据赛季,球员ID和联盟名称对所有内容进行分组,因此我得到每个球员的平均PER LEAGUE,而不是在不同联赛中所有比赛的平均值.

我尝试使用DISTINCT关键字,但这不起作用,因为我不能DISTINCT只使用一个列.我也尝试了其他的东西,但是它们都没有接近工作,所以我想知道是否甚至可以这样做,或者我是否必须使用另一种语言对这个结果集进行排序并删除重复项?

sql sqlite aggregate aggregate-functions

6
推荐指数
1
解决办法
3897
查看次数

获取具有MIN/MAX值的行的其他字段值

以下是我的数据示例以及我希望看到的内容:

JOB    OPSEQ    OPCOMPLETE   OPCODE

100     1        yes          pull  
100     2        yes          weld  
100     3        no           grind    
100     4        no           machine  
100     5        no           asmbl  
Run Code Online (Sandbox Code Playgroud)

所以我想选择min(opseq),其中opcomplete = no和max(opseq),其中opcomplete = yes,以及min和max opseq的操作码.在这个例子中,
min:
op (opseq):3 操作码min op:grind
max(opseq):2 opcode of max op:weld

我正在寻找的原因是获得最不完整的opseq的操作码.
我让min和max opseq工作得很好.这就是我所拥有的:

(SELECT   company, jobnum, MAX(oprseq) AS maxclosed, opcomplete
 FROM     joboper AS joboper_2
 WHERE    (company = 'lot') AND (opcomplete = '1')
 GROUP BY company, jobnum, opcomplete) AS t_joboper1 ON joboper.company = t_joboper1.company AND joboper.jobnum = t_joboper1.jobnum INNER JOIN …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server aggregate max min

6
推荐指数
1
解决办法
539
查看次数

两列之和的划分

我需要取两列的总和并除以总数.两列都是十进制数据类型.这是我到目前为止所做的不起作用.

SELECT total_salary / DistEnroll
FROM   dbo.vw_Salary
WHERE  DistEnroll = (
           SELECT DISTINCT(distenroll)
           FROM   dbo.vw_Salary
           WHERE  YEAR = '2012'
                  AND dist_name = 'Sch Dist'
       )
       AND total_salary = (
               SELECT SUM(total_salary)
               FROM   [vw_salary]
               WHERE  YEAR = '2012'
                      AND dist_name = 'Sch Dist'
           )
Run Code Online (Sandbox Code Playgroud)

sql aggregate division

6
推荐指数
1
解决办法
3万
查看次数

比较德鲁伊和pipelinedb

我一直致力于流数据的聚合,我找到了两个实现相同的工具.他们是德鲁伊和管道.我已经理解了两者的实现和架构.但无法想出一种方法来对这两者进行基准测试.是否已经完成了现有的基准测试?或者,除了速度和可扩展性之外,如果我想对自己进行基准测试,那么我需要考虑的因素是什么.任何想法,链接和帮助都会非常明显.同时与pipelinedb和druid分享您自己的经验

谢谢

memory performance benchmarking scalability aggregate

6
推荐指数
1
解决办法
542
查看次数

领域驱动设计:如何在不同的有界环境中处理用户实体?

我有一个关于域驱动设计的问题.在我的应用程序的用户帐户/配置文件有界上下文中,有一个用户实体,其中包含帐户信息(ID,用户名,密码,电子邮件,盐等)和个人资料信息(全名,头像,生日,性别等).我还有另一个有效的工作岗位/应用上下文,其中每个工作岗位都有雇主用户,每个工作申请都有申请人用户.

问题是,作业有限上下文中的雇主/申请人用户是否应该是我用于用户帐户有限上下文的相同用户实体?或者我应该为雇主和申请人设计不同的用户类型实体?

如您所见,只有来自帐户有界上下文的ID,全名,电子邮件和头像等信息才与作业有限的上下文相关.如果雇主/申请人是来自帐户/用户档案的相同用户实体,则它将加载更多无用的数据(不需要知道雇主/申请人的用户密码).但是如果我为它们创建不同的实体类,它将使数据持久性更加棘手,因为在不同实体类中进行的更改可以更改同一数据库表中的相同数据.

你怎么看?我是否应该为不同的有界上下文/聚合使用一个用户实体用于所有或不同的用户实体?如果需要后者,我该如何处理数据/实体持久性?

persistence entity domain-driven-design aggregate bounded-contexts

6
推荐指数
1
解决办法
1852
查看次数

如何对具有相同名称的列表元素求和?

我正在寻找这个问题的解决方案:我有一个这样的列表列表

sample = list("element1" = list("term1"=0.5, "term2"=1, "term3"= 4, "term1"= 0.5), "element2" = list("term23"=5, "term1"=2, "term23"=4))
Run Code Online (Sandbox Code Playgroud)

对于外部列表的每个列表,我想对具有相同名称的值求和.所以期望的输出是

desired_output = list("element1" = list("term1"=1, "term2"=1, "term3"= 4), "element2" = list("term23"=9, "term1"=2))
Run Code Online (Sandbox Code Playgroud)

实际上,我想过用这样的东西

result = lapply(sample, function(l) aggregate(l, by = list(names(l)), FUN = sum))
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误.有关于此的任何想法?提前致谢.

aggregate r sum list lapply

6
推荐指数
1
解决办法
465
查看次数