问题标签 [aggregation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
808 浏览

design-patterns - 理解 DoFactory 设计模式的 UML - 装饰器

我试图在下面的链接中理解描述装饰器模式的 UML 图

http://www.dofactory.com/Patterns/PatternDecorator.aspx

我不明白为什么装饰器和组件之间存在“聚合”关系。

我相信它应该是组合,因为没有基本组件就不能存在装饰器。

0 投票
1 回答
270 浏览

sql - 总结同一张SQL表上的两个条件

给定一个 SQL 表

whereSTATUS IN (0,1)表示免费交易并STATUS IN (2,3)表示可计费交易,什么简单(我希望)ANSI SQL 语句将显示每笔COMPANY_ID可计费交易、不可计费交易的数量及其比率?

如果不是一个具体的陈述,一个正确方向的概念性刺激是好的。我的第一次尝试是使用WHERE两个状态组的子句在表上进行自联接,但我不知道如何获取表示每个不同计数的列,以便我可以计算比率。

这在概念上与汇总数据非常相似,但我不确定如何将该问题扩展到这个问题。

0 投票
1 回答
366 浏览

asp.net - 数据聚合 - 多个网站,单个超级用户网站

我对一组 asp.net MVC 网站有如下要求:

  1. 多个站点,使用相同的代码库,但每个站点将有一个单独的数据库(这是一个要求),用户将登录并输入数据。

  2. 超级用户的单个站点,他们登录并处理从每个单独站点聚合的数据。

随着我们向更多客户推广,第一点中的网站数量可能会增加。

我的问题是关于上述架构的 - 如何管理数据聚合,因为它需要是实时的。我们是在数据库级别(例如,本质上是跨各个站点数据库的联合视图)还是在应用程序级别维护它。

一些基础设施点:

  1. 我们可以完全控制数据库服务器和数据库命名。

  2. 所有这些网站都部署在我们管理的服务器上。

我很感激以前可能做过这件事的人的任何意见/想法。

0 投票
1 回答
3155 浏览

sql - 引用聚合列的 MySQL 别名

跟进我的问题summarizing-two-conditions-on-the-same-sql-table,我添加了一个 RATIO 列,它只是一个 SUM(...) 列除以第二个 SUM(...) 列:

像这样定义 RATIO 看起来很干净,但显然也被 SQL 禁止

为了使查询正常工作,我只是复制了 NON_BILLABLE 和 BILLABLE 的 CASE 语句。

是否有更好、更简洁(非冗余)的方式来编写此查询?

0 投票
2 回答
1700 浏览

django - django聚合聚合字段?

我有一个名为 的模型Item,与User(“所有者”)有 m2m 关系。

对于每个项目,我需要计算拥有它的用户。这很容易annotate()

但是然后我需要计算每个项目的特定性别所有者与总所有者数之间的比率。例如,如果 5 个用户中有 2 个男性拥有该项目,则比率为0.4

最好的方法是什么?

0 投票
2 回答
514 浏览

r - 非常简单的条形图

首先,我必须为我的无知道歉,因为我确信这是一个非常简单的问题,但我对 R 很陌生。我的问题是我有一个看起来像这样的数据框;

我要做的就是按国家/地区汇总保险价值的总和并生成条形图,例如

非常感谢。

0 投票
3 回答
2892 浏览

sql - 以优先级聚合 SQL 行

我有一张桌子,里面摆满了来自不同来源的物品。一些来源可能具有相同的位置(在我的示例中,不同的 BBC 新闻提要是不同的来源,但它们都来自 BBC)。每个项目都有一个“唯一”ID,可用于从同一位置识别它。这意味着与网站上的相同新闻报道相关但在不同提要下发布的项目将具有相同的“唯一 ID”,但这不一定是全球唯一的。

问题是我想在显示时消除重复项,因此(取决于您看到的提要)您最多只能获得每个故事的一个版本,即使您的提要中的两个或三个可能包含指向它的链接。

我有一个sources表格,其中包含有关每个来源location_idlocation_precedence字段的信息。然后,我有一个items包含每个项目的表,它的unique_idsource_idcontentunique_id与来源相同的项目location_id最多出现一次,最高来源location_precedence获胜。

我会认为是这样的:

可以解决问题,但这似乎忽略了位置优先级字段。我错过了什么?


示例数据:

查询后的预期内容:

  • 关于主题一的故事
  • 技术善良
  • Foo、Bar 和 Quux 在法庭上的战斗
  • 反富巴抗议引起不安
  • Microsoft Bleh 遇到不冷不热的接待
  • 有没有想过在 VB 中做这件事?
  • 名人有“新朋友”
  • 微软在全球推出 Bleh
  • 技术综述
  • 房地产“旧消息”说政府
  • 伊朗医生“中毒”
  • 苹果粉丝对 iBlah 喜出望外

我尝试了 Andomar 解决方案的变体,并取得了一些成功:

AND s.location_priority = filter.prio事情几乎可以按我的意愿工作。因为一个项目可以来自具有相同优先级的多个来源,所以项目可以重复。在这种情况下,外部查询上的额外GROUP BY i.unique_id功能可以完成这项工作,我认为如果优先级相等,哪个源“获胜”并不重要。

我已经尝试过AND i.source_id = filter.source_id,它几乎可以工作(即消除了额外的GROUP BY),但没有从正确的来源给出结果。在上面的例子中,它给了我“Foo case 的进一步更新”(来源“BBC News England”)而不是“Foo, Bar and Quux in court battle”(来源“BBC Technology News”。查看内部结果查询,我得到:

请注意,源 ID 不正确(预期:3)。

0 投票
1 回答
1360 浏览

django - django聚合get_*_display函数用法

这个问题与 1.1 中的 Django 聚合/注释有关。假设我有一个带有 IntegerField 的简单模型,该模型具有传递给它的“选择”参数。在这种情况下,它映射到一个 GENDERS 元组,如图所示。通常,在模板(或视图)中,我可以使用 get_gender_display() 函数来引用性别的文本值。

但是,当我在下面的视图中注释性别计数时,我无法使用 get_gender_display() 函数查找每个性别的文本值。请参阅下面的模板摘录。我将如何获取性别的文本价值?

我以前从未使用过 Django Aggregation,所以也许我错过了一个明显的解决方案。谢谢你考虑我的情况。

模型.py

视图.py

模板

0 投票
3 回答
1533 浏览

sql - 聚合还是不聚合,这是数据库架构设计的问题

如果您正在执行最小/最大/平均查询,您更喜欢使用聚合表还是简单地查询原始表中的一系列行?

这显然是一个非常开放的问题,没有一个正确的答案,所以我只是在寻找人们的一般建议。假设原始数据表由时间戳、数字外键(比如用户 ID)和十进制值(比如购买金额)组成。此外,假设表中有数百万行。

我都做了,我很伤心。一方面,聚合表给了我更快的查询速度,但代价是增加了额外的表。显示聚合范围的当前值要么需要完全返回原始数据表,要么需要组合更细粒度的聚合。我发现在应用程序代码中跟踪查询哪个聚合表的时间比您认为的要多,并且需要更改架构,因为原始聚合范围总是不够的(“但我想看看我们在过去 3 个支付期的销售额!”)。

另一方面,从原始数据中查询可能会非常慢,但让我对数据范围非常灵活。当范围边界发生变化时,我只需更改查询,而不必重建聚合表。同样,应用程序代码需要更少的更新。我怀疑如果我在索引方面更聪明(即始终具有良好的覆盖索引),我将能够减少从原始数据中选择的惩罚,但这绝不是灵丹妙药。

无论如何我可以两全其美吗?

0 投票
1 回答
1086 浏览

.net - 托管 COM 聚合

我的理解是构建一个聚合现有 COM 对象的 COM 对象意味着在外部对象的 IUnknown.QueryInterface 方法中实现重定向逻辑。

我的问题是,如果您正在构建的对象是受管理的,如何做到这一点。在托管对象上,IUnknown 未明确实现 COM Interop 为您完成。那么如何告诉 COM Interop 我构建的对象是另一个 COM 对象的聚合呢?

到目前为止,我发现的唯一方法是在外部实现内部对象的所有接口并显式重定向它们。这是a)丑陋和b)假设您知道要实现的所有接口,但在我的情况下并非如此。

有什么想法吗?