aggregate-functions相关内容

SQL Server:PARTITION BY 和 GROUP BY 的区别

多年来,我一直将 GROUP BY 用于所有类型的聚合查询.最近,我一直在对一些使用 PARTITION BY 执行聚合的代码进行逆向工程.在阅读我能找到的关于 PARTITION BY 的所有文档时,它听起来很像 GROUP BY,也许添加了一些额外的功能?它们是具有相同通用功能的两个版本,还是完全不同的东西? 解决方案 它们用在不同的地方.group by 修改整个查询,如: sel ..
发布时间:2021-12-10 12:39:33 数据库

选择具有最大值的记录

在 SQL Server 2008 中,我有一个表 CUSTOMERS,它有两列: 身份证,余额 如何编写选择余额最大的客户 ID 的查询,“以最有效的方式"? 选项 1:ORDER BY BALANCE 和 SELECT TOP(1) --> 成本太高. 选项 2:首先获取 MAX 金额,然后使用 where 子句 中的金额进行另一个查询 --> 成本太高,看起来不可靠. ..
发布时间:2021-12-10 12:27:29 其他开发

LINQ 按时间段聚合和分组

我试图了解如何使用 LINQ 按时间间隔对数据进行分组;然后理想地聚合每个组. 找到大量具有明确日期范围的示例,我正在尝试按 5 分钟、1 小时、1 天等时间段进行分组. 例如,我有一个用一个值包装 DateTime 的类: 公共类示例{公共日期时间时间戳;公共双重价值;} 这些观察结果作为一个系列包含在 List 集合中: List系列; 因此,要按每小时的时间段分组并按平均 ..
发布时间:2021-12-09 11:22:11 C#/.NET

没有聚合函数的 GROUP BY

我试图在没有聚合函数的情况下理解 GROUP BY (oracle dbms 的新手). 它是如何运作的? 这是我尝试过的. 我将在其上运行 SQL 的 EMP 表. SELECT ename , sal发件人按名称分组 SELECT ename , sal发件人按名称分组; 结果 ORA-00979:不是 GROUP BY 表达式 00979. 00000 - “不是 ..
发布时间:2021-12-05 23:49:59 数据库

将查询中的单个列与多列聚合

当查询中有许多其他列时,是否有适当的方法来聚合单个列? 我试过 这个答案 有效,但我的查询变得更加冗长. 我当前的查询如下所示: SELECT t1.foo1, t1.foo2, t2.foo3, t2.foo4, string_agg(t3.aggregated_field, ', ')从 tbl1 t1左连接 tbl2 t2 ON t1.id = t2.fkeyid左加入 tbl ..
发布时间:2021-12-05 22:05:28 其他开发

GROUP BY + CASE 语句

我有一个工作查询,它​​按硬件型号和结果对数据进行分组,但问题是有很多“结果".我试图将其减少到 “如果结果 = 0,则保持为 0,否则将其设置为 1".这通常有效,但我最终有: 日 |姓名 |类型 |案例 |数数------------+----------------+------+------+------——2013-11-06 |型号A |1 |0 |9722013-11-06 |型 ..
发布时间:2021-12-05 21:30:35 其他开发

如何包含“零"/“0"结果在 COUNT 聚合?

我刚刚被一些 SQL 困住了.我不认为我可以巧妙地表达这个问题 - 所以让我向你展示. 我有两张桌子,一张叫人,一张叫约会.我正在尝试返回一个人的约会次数(包括他们是否为零).约会包含 person_id 并且每个约会都有一个 person_id.所以 COUNT(person_id) 是一个明智的方法. 查询: SELECT person_id, COUNT(person_id) ..
发布时间:2021-12-05 21:21:31 其他开发

将一列的多个结果行连接成一个,按另一列分组

我有一张这样的桌子 电影演员1A2一个 3乙 4 我想获得一部电影的名字和该电影中所有演员的名字,我希望结果是这样的格式: 电影演员列表1、2、3 我该怎么做? 解决方案 使用聚合函数更简单 string_agg()(Postgres 9.0 或更高版本): SELECT 电影, string_agg(actor, ', ') AS actor_list从表按 1 分组; GR ..
发布时间:2021-12-05 21:18:31 其他开发

使用 PostgreSQL 创建数据透视表

假设我在 Postgres 中有一个名为 listings 的表,如下所示: id 邻里卧室价格1 市中心 0 2568882 市中心 1 3340003江景1 505000等等. 如何编写一个交叉表查询,将每间卧室的平均价格显示为列,将街区显示为行? 查询的输出应该是这样的(数字是组成的,列是卧室): 0 1 2 3里弗顿 250000 300000 350000 -市中心 189 ..
发布时间:2021-12-05 21:14:35 其他开发

SQL 查询以逗号分隔符以及 SQL Server 中的按列分组获取聚合结果

我需要在表上编写一个 sql 查询,以便结果将包含按列分组以及带逗号分隔符的聚合列. 我的表格将采用以下格式 |`````````|````````||身份证 |价值 ||_________|________||1 |一个||_________|________||1 |乙 ||_________|________||2 |c ||_________|________| 预期结果应为以 ..

T-SQL 是否有聚合函数来连接字符串?

可能的重复: SQL Server 2000 中的内爆类型函数? 连接行值 T-SQL 我有一个我正在查询的视图,如下所示: BuildingName PollNumber------------- ----------富中心12富中心13富中心14酒吧大厅 15酒吧大厅 16巴兹学校 17 我需要编写一个查询,将 BuildingNames 组合在一起并显示一个 PollNumbe ..

在 SQL Server 中计算中值的函数

根据 MSDN,中值不能作为聚合函数使用在 Transact-SQL 中.但是,我想知道是否可以创建此功能(使用 创建聚合函数、用户定义函数或其他一些方法). 这样做的最佳方法是什么(如果可能) - 允许在聚合查询中计算中值(假设是数字数据类型)? 解决方案 2019 UPDATE: 在我写这个答案的 10 年里,已经发现了更多的解决方案可能会产生更好的结果.此外,此后的 SQL S ..
发布时间:2021-12-02 14:19:03 数据库

在 Rails+Postgres 中按任意时间间隔计算记录的最佳方法

我的应用有一个带有时间戳事件的 Events 表. 我需要报告每个最近 N 时间间隔内的事件计数.对于不同的报告,间隔可以是“每周"或“每天"或“每小时"或“每 15 分钟间隔". 例如,用户可以显示他们每周、每天、每小时或每刻钟收到的订单数量. 1) 我的偏好是动态执行按任意时间间隔分组的单个 SQL 查询(我使用的是 Postgres).有没有办法做到这一点? 2) 一 ..

Oracle 中的 LISTAGG 返回不同的值

我正在尝试在 Oracle 中使用 LISTAGG 函数.我只想获得该列的不同值.有没有一种方法可以在不创建函数或过程的情况下只获取不同的值? col1 col2 Created_by1 2 史密斯1 2 约翰1 3 阿杰1 4 公羊1 5 杰克 我需要选择col1和col2的LISTAGG(不考虑第3列).当我这样做时,LISTAGG 的结果是这样的:[2,2,3,4,5] 我需要 ..
发布时间:2021-12-01 20:03:29 数据库

PostgreSQL:按分钟运行查询的行数

我需要每分钟查询到该分钟的总行数. 我目前所能达到的最好成绩并不能解决问题.它返回每分钟计数,而不是每分钟的总计数: SELECT COUNT(id) AS 计数, EXTRACT(hour from "when") AS 小时, EXTRACT(minute from "when") AS 分钟从 mytable按小时、分钟分组 解决方案 只返回活动分钟 最短 SELECT ..

连接/聚合字符串的最佳方式

我正在寻找一种将不同行中的字符串聚合为一行的方法.我希望在许多不同的地方这样做,所以有一个功能来促进这一点会很好.我已经尝试过使用 COALESCE 和 FOR XML 的解决方案,但他们只是不适合我. 字符串聚合会做这样的事情: id |名称 结果: id |姓名- - - - - - - - -1 |马特 1 |马特,岩石1 |岩石 2 |手写笔2 |手写笔 我看过CLR 定义的聚合 ..