问题标签 [aggregate]

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 回答
1515 浏览

c# - Linq - 如何聚合另一个查询的结果

我想获取列表中 where 子句的结果,然后获取该结果集并仅创建一个新类型,该类型的所有字段均由原始查询的聚合构成。所以给出下面的基本示例,是否有将 2 个 linq 语句合并为一个?如果原来的 where 没有行,那么它应该返回 null。谢谢!

更新:对于我的情况,原始集有很多项目,但在 where 子句之后,结果集非常小。多次枚举第二组应该不是问题。此外,我需要在集合中使用 first 和 last 来从这些记录中获取值。按答案分组最适合我。聚合方式非常有趣,我认为它还有另一个用途。

0 投票
1 回答
2109 浏览

nhibernate - 如何让 NHibernate 聚合函数 sum() 返回十进制?

我无法让 sum() 返回小数,它总是返回 int64 截断小数。我已经用谷歌搜索了一整天,但仍然找不到真正的工作。我有一个名为 ProductPurchase 的数据库表

QtyPurchased(int) 和 UnitPurchasePrice(money) 列,

这些使用 NHibernate 映射到 C# POCO 对象,其中 QtyPurchase 是一个 int 并且 UnitPurchasePrice 是一个小数属性。

我有以下 HQL 查询,我想在其中获取给定日期的总购买金额:

select sum(detail.QtyPurchased * detail.UnitPurchasePrice) from Domain.Entities.ProductPurchase AS detail where datediff("day", detail.PurchaseDate, :trading_date) = 0

现在无论出于什么原因,query.UniqueResult 总是返回一个 Int64 整数,截断小数,而生成的 SQL 显然返回正确的数字,并带有小数。有人可以解释一下如何让它返回十进制吗?

我注意到如果我使用 SQL(即 CreateSqlQuery),我可以得到小数点。这是 Nhibernate 的错误吗?

非常感谢

史蒂文·郭

0 投票
4 回答
2863 浏览

sql - TSQL 中的合并和透视

我无法弄清楚如何在如下所示的 SQL 记录集上合并或旋转:

我想像这样格式化

感谢您的任何建议和帮助!

0 投票
4 回答
2696 浏览

sql - SQL 从 2 列中查找最近的日期,并确定它在哪一列

我有一个名为 tblAssetsInUse 的表,其结构如下:

并且我有一个 SP 接收扫描的资产 ID,然后分别插入或更新表中的资产以检出或检入。如您所见,datCheckedIn 可能为 Null,用于计算当前正在使用的资产。此过程完美运行。我希望能够确定要扫描的最后一个资产是什么,以及表的最后一个操作是什么(即签入或签出)。我有一些 SQL 代码可以找到具有最近日期的行(无论哪一列),然后我使用它来加入一个单独的资产视图,它也可以工作。我只需要能够以某种方式确定最近的日期是否在“签出”或“签入”列中。

是否有某种我可以添加的文字值,以便它在结果中标记一个位值?

谢谢你的帮助,

保罗雷诺兹

0 投票
3 回答
859 浏览

sql - 选择日期间隔,快速完成,并始终返回带有结果的最新条目

我有一个带有表的数据库,用于存储跨几个帐户的帐户余额更改,其中包含三列;

它包含一年中每一天的几个条目,我想检索每五天的余额。我还希望它在帐户之间分开(即,如果在同一天发生了两次更改,但在不同的帐户上,则两者都返回)。

问题是这样的:有时会有几天(或几周)没有可用数据。发生这种情况时,我想确保在数据集中的“洞”之前返回最新条目。这是问题的简化版本,实际数据库很大(几千兆字节),大小是我要返回数据子集的原因。它不能使用特定于平台的方法,因为它需要同时在 oracle 和 mySQL 上工作。

我的问题是:有什么方法可以快速做到这一点?我将能够编写一个完成工作的查询,但我希望有一些不需要大量嵌套查询和聚合函数的魔鬼魔法方式。

0 投票
3 回答
4306 浏览

mysql - 优化 MySQL 聚合查询

我在 MySQL 中有一个非常大的表(约 1 亿条记录),其中包含有关文件的信息。其中一条信息是每个文件的修改日期。

我需要编写一个查询来计算适合指定日期范围的文件数。为此,我制作了一个小表,指定了这些范围(均以天为单位),如下所示:

并编写了一个如下所示的查询:

然而,可以预见的是,这个查询需要永远运行。我认为这是因为我要求 MySQL 遍历 HugeFileTable 5 次,每次对每个文件执行 DATEDIFF() 计算。

相反,我想做的是只逐条记录一次 HugeFileTable 记录,并为每个文件增加相应 range_name 运行总数中的计数。我不知道该怎么做......

有人可以帮忙吗?

谢谢。

编辑:MySQL 版本:5.0.45,表是 MyISAM

EDIT2:这是评论中要求的描述

0 投票
7 回答
7692 浏览

domain-driven-design - 什么属于聚合根

这是一个实用的领域驱动设计问题:

从概念上讲,我认为我得到聚合根,直到我去定义一个。

我有一个 Employee 实体,它以聚合根的形式出现。在企业中,一些员工可能会记录与工作相关的违规行为:

员工-----*违规行为

由于并非所有员工都受此约束,我认为违规不会成为员工汇总的一部分,对吗?

因此,当我想与员工及其相关违规行为一起工作时,这是否是某些服务的两个单独的存储库交互?

最后,当我添加违规时,该方法是否适用于员工实体?谢谢您的帮助!

0 投票
14 回答
685693 浏览

c# - 按多列分组

如何在 LINQ 中对多列进行 GroupBy

SQL中类似的东西:

如何将其转换为 LINQ:

0 投票
4 回答
28912 浏览

sql - 计数不同且 Null 值被聚合消除

我正在使用 SQL Server 2005。使用下面的查询(从我的真实查询中简化):

有什么方法可以在没有得到的情况下进行计数

“警告:空值被聚合或其他 SET 操作消除。”

以下是我能想到的替代方案:

  1. 关闭 ANSI_WARNINGS
  2. 分成两个查询,一个带有 count distinct 和一个 where 子句以消除空值,一个带有总和:

    /li>
  3. 忽略客户端中的警告

有一个更好的方法吗?我可能会沿着路线 2 走,但不喜欢代码重复。

0 投票
5 回答
3720 浏览

c++ - 使用聚合初始化列表优于构造函数的优势?

我是 C++ 新手,我有一个问题......

我尝试通过制作一个测试应用程序自己回答这个问题......在调试中,B类初始化生成较少的汇编代码,但在发布模式下,我真的不能说......它优化了初始化:(

假设我有两个课程:

使用有什么好处吗

代替

?