SQL Server 的分组字符串聚合/LISTAGG

2023-12-22

我确信有人问过这个问题,但我找不到正确的搜索词。

给定一个像这样的模式:

| CarMakeID | CarMake
------------------------
|         1 | SuperCars
|         2 | MehCars

| CarMakeID | CarModelID | CarModel
-----------------------------------------
|         1 |          1 | Zoom
|         2 |          1 | Wow
|         3 |          1 | Awesome
|         4 |          2 | Mediocrity
|         5 |          2 | YoureSettling

我想生成这样的数据集:

| CarMakeID | CarMake   | CarModels
---------------------------------------------
|         1 | SuperCars | Zoom, Wow, Awesome
|         2 | MehCars   | Mediocrity, YoureSettling

在以下样式查询中,我该如何替换 SQL Server 中字符串的“AGG”?

SELECT *, 
 (SELECT AGG(CarModel) 
  FROM CarModels model
  WHERE model.CarMakeID = make.CarMakeID
  GROUP BY make.CarMakeID) as CarMakes
FROM CarMakes make

http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/ http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

这是 Transact SQL 中一个有趣的问题,对此有许多解决方案和相当多的争论。如何生成一个汇总结果,其中每个特定类别中每一行的区别列都列在“聚合”列中?简单、直观的数据显示方式极其难以实现。 Anith Sen 总结了不同的方法,并对您选择的方法提出了警告......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 的分组字符串聚合/LISTAGG 的相关文章

  • 从一个sql服务器选择到另一个sql服务器?

    我想将一台服务器 Data Old S1 中的一个表 T1 在 DB1 中 中的数据选择到另一台服务器 Data Latest S2 中的另一个表 T2 在 DB2 中 中的数据 我怎样才能做到这一点 请注意服务器的命名方式 查询也应该考虑
  • MySQL 中的 UDF 性能

    我注意到 当查询在 SELECT 或 WHERE 子句中调用 UDF 时 MySQL 查询执行时间的性能会呈指数级下降 有问题的 UDF 查询本地表以返回标量值 因此它们不仅执行算术表达式 而且充当相关子查询 我通过简单地删除 UDF 并使
  • 使用 xmlagg 时出现子查询错误和太多值

    我在连接许多大型表中的所有数据时遇到问题 我昨天对此提出了问题 但不幸的是 listagg 似乎不是一个好的选择 链接子查询返回多行 https stackoverflow com questions 54651144 subquery r
  • 在sql server 2008中插入新记录时如何检查数据库中的值是否已存在

    我创建了一个存储过程 用于从表中选择值 如果该值已经存在 那么它将更新该值 但如果不存在 那么它将插入新值 我为此使用了存储过程 如下所示 Create PROCEDURE dbo sp Insert Tid int NULL Quid i
  • 在 Doctrine DQL 中选择 count() ,并使用左连接多对多单向关系,其中用户没有关系特定组

    情况 我尝试在 DQL 中为不属于特定组的用户选择 count 标准ManyToMany之间的单向关系User and Group实体来自FOSUserBundle and SonataUserBundle 系统 Symfony 2 5 D
  • 计算树中值的总和(递归查询)

    我在表员工 id name parentid 中有树结构 并且该表可以嵌套 employees 与另一个具有列 id employeeid quantity 的 Sales 表是一对多关系 每个员工都有销售数量 我想计算每个员工以及儿童员工
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • 优化 LINQ 查询 - 如何缩短执行时间?

    我想知道是否有一个好的方法来优化我的 LINQ 查询 我正在使用类似于以下内容的 LINQ 查询从数据库检索数据 PKs is a list of integers var import context table Where x gt P
  • Mysql 在给定日期时间范围内插入随机日期时间

    使用 SQL 我可以在给出范围的列中插入随机日期时间值吗 例如 给定一个范围2010 04 30 14 53 27 to 2012 04 30 14 53 27 我对范围部分感到困惑 因为我刚刚做了这个 INSERT INTO someta
  • 如何在分层类别树中找到我的节点及其祖先的所有兄弟节点?

    这是我的桌子 CREATE TABLE IF NOT EXISTS Category Name varchar 25 NOT NULL lft INT UNSIGNED NOT NULL rgt INT UNSIGNED NOT NULL
  • 仅基于月份和年份的 SQL Server 日期比较

    我无法确定仅根据月份和年份比较 SQL 中的日期的最佳方法 我们根据日期进行计算 由于计费是按月进行的 因此该月的日期会造成更多障碍 例如 DECLARE date1 DATETIME CAST 6 15 2014 AS DATETIME
  • 使用 LIMIT/OFFSET 运行查询并获取总行数

    出于分页目的 我需要使用以下命令运行查询LIMIT and OFFSET条款 但我还需要计算该查询将返回的行数 而不需要LIMIT and OFFSET条款 我想运行 SELECT FROM table WHERE whatever ORD
  • SSIS 将字符转换为布尔值/位

    我有一个SSIS包来加载数据 您可能还记得 当我尝试将数据文件中的标志作为位标志加载到 SQL Server 中时 这些标志作为 Y N char 1 存在 我将数据文件中的列指定为String DT STR 我有一个数据转换任务 根据以下
  • Netezza SQL 将 VARCHAR 转换为二进制字符串

    我有一个位图存储为VARCHAR在内特扎 需要转换一下VARCHAR转换为 Netezza 中的二进制字符串 输入 Netezza col 值 VARCHAR 0xFFFFFFFFFFFFFFFF 期望的输出 VARCHAR gt 1111
  • MySql 复合索引

    我们使用 MySql 作为我们的数据库 以下查询在 mysql 表 大约 2500 万条记录 上运行 我在这里粘贴了两个查询 查询运行得太慢 我想知道更好的复合索引是否可以改善这种情况 你知道最好的综合指数是什么吗 并建议我这些查询是否需要
  • DB2 - 如何在 IBM System i Access for Windows GUI Tool 中使用参数运行即席选择查询

    我想使用我声明的变量在 IBM System I Navigator tool for DB2 中运行一些临时选择语句 例如 在 SQL Server 世界中 我可以在 SQL Server Management Studio 查询窗口中轻
  • 搜索多个表 (SQL)

    我需要能够有一个 SQL 查询来使用简单的搜索来搜索我的数据库 这是我的表格现在的样子 Table artists id name Table albums id artistID name Table songs id albumID n
  • 在 Dockerfile 中切换到 root 用户

    我运行了这个命令 docker pull mcr microsoft com mssql server 2019 latest 然后我创建了一个 dockerfile 来使用此容器映像作为另一个容器的基础映像 escape FROM mcr
  • 如何使用 SQL - INSERT...ON DUPLICATE KEY UPDATE?

    我有一个脚本可以捕获推文并将其放入数据库中 我将在 cronjob 上运行脚本 然后在我的网站上显示数据库中的推文 以防止达到 Twitter API 的限制 所以我不想在我的数据库中有重复的推文 我知道我可以使用 INSERT ON DU
  • 当您执行“SELECT *”时,SQL Server 如何确定列的顺序?

    当您执行以下操作时 SQL Server 如何确定列的顺序SELECT 我知道 订购依据 对于订购至关重要data 但我预计列名保持一致 注意 我的代码是not取决于返回列的实际顺序 我只想知道 SQL Server 如何决定对列名进行排序

随机推荐

  • 为什么composite-id类必须实现Serialized?

    如果我创建一个复合 id 类 它不实现 Serialized 如下所示 Entity Table name board public class Board Id Column name keyword news id private in
  • 在 Protractor 测试中访问 Angular

    是否可以像在单元测试中一样在量角器测试中访问角度 用例是我有一个转换文本的服务 我想访问该服务以转换实际测试脚本中的一些数据 我知道有addMockModule量角器中的方法 但我不知道如何将它用于此目的 将不胜感激任何帮助 有一个函数叫做
  • 用遗传算法建立排名,

    BIG 版本后的问题 我需要使用遗传算法建立排名 我有这样的数据 P a gt b 0 9 P b gt c 0 7 P c gt d 0 8 P b gt d 0 3 现在 让我们解释一下a b c d作为足球队的名称 以及P x gt
  • 如何在 jupyter/ipython 笔记本中显示图形旁边的文本段落

    我正在寻找一种 也许是创造性的 方法将文本放置在 jupyter 笔记本中的图表旁边 这个想法是在图表旁边有一个详细的描述 而不是笔记本通常的垂直流程 有任何想法吗 一种相当有创意的方法是模仿内联后端但添加基础表 python 2 7 的可
  • 预处理器宏有什么用?

    在阅读了另一个有关宏使用的问题后 我想知道 什么are他们有什么好处 我认为不会很快被任何其他语言结构取代的一件事是减少您需要输入以下内容的相关单词的数量 void log type const bool value std cout lt
  • PermGen 空间异常

    我正在使用 JAVA 5 32 位 来运行在 JBoss 上的应用程序 但它仅适用于 32 位 当我们将其部署在 64 位 java5 上时 它会抛出异常 java lang OutOfMemoryError PermGen space e
  • XmlPullParser 获取子节点的首选方式?

    获取 XML 字符串的子节点的首选方法是什么 android中似乎缺乏使用XmlPullParser进行解析的好例子 例如 如果我想解析这个
  • 监视文件夹并查找文件是否在 Windows 应用程序中打开

    Edit 所以显然有没有简单或方便的方法来了解文件是否已打开 是否由进程保存 我认为这是 Windows 操作系统本身的问题或设计决策 因为即使像 Process Explorer 这样的程序也无法判断我何时在窗口旁边的记事本中打开了 my
  • 如何获取给定维基数据 ID 的语句列表?

    我唯一能做的就是这个链接 https www wikidata org w api php action wbgetentities ids Q568 format jsonfm 但这会产生大量无用的数据 我需要的是获取给定项目的所有语句
  • java控制台输出的默认字符编码

    Java如何确定使用的编码System out 给定以下课程 import java io File import java io PrintWriter public class Foo public static void main S
  • 返回 Facebook API 好友位置对象,其中 id 为空字符串,name 为 null

    昨天 当我使用查询 me friends fields id location 从 Graph API 检索我的 Facebook 好友时 返回了 500 多个位置数据 今天 有 500 个与位置对象一起返回 但只有 36 个在位置对象中有
  • 什么是消息传递?

    Java中的消息传递是什么 如果可以的话 请提供一个例子 Java 中的消息传递 当一个线程向另一个线程发送消息 对象 时 用于线程没有共享内存的环境中的线程通信和同步 因此线程不能共享信号量或监视器 也不能使用共享变量进行通信 当然 在共
  • 使用 Imagick 将每个 PDF 页面保存为图像

    我下面有以下 php 函数 它将本地 PDF 文件转换为图像 简而言之 我希望将每个 PDF 页面转换为单独的图像 该函数将 PDF 转换为图像 但仅限最后一页 我想every要转换为图像并编号的 PDF 页面 不仅仅是 PDF 的最后一页
  • “朋友的朋友”SQL 查询

    这个问题与上一个问题相关 你可以看看我的第一篇文章here https stackoverflow com questions 43848439 two tables referring to each other 我正在尝试从用户表中提取
  • “找不到 JavaScript 运行时”。我该如何安装?

    我无法启动 Rails 服务器 显然我没有 JavaScript 运行时 rails s c Ruby22 lib ruby gems 2 2 0 gems bundler 1 13 6 lib bundler runtime rb 94
  • 如何从文本文件中选取一行并将其转换为数组对象?

    好的 这是代码 我需要以某种方式从文本文件中取出一行并转换为数组对象 像 p 0 asdasdasd public class Patient2 public static void main String args int field 0
  • AngularJS:指令中的 ng-click 未在移动设备上触发

    我目前正在努力解决 AngularJS 中的 ng click 问题 我有一个指令 并且在一个带有 ng click command 的元素内 div class james upload wrapper row div class jam
  • 地图API,存储数据,如何不违反条款? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 在 Google 和 Yahoo Maps API 中 我读到了服务条款 您不得 存储或允许最终用户存储地图图像 地图数据或地理编码 来自 Yahoo
  • ical4j 库 org.mnode.ical4j 和 net.fortuna.ical4j 之间的区别

    我们正在使用ical4j通过maven 浏览时存储库 https mvnrepository com search q ical4j 我碰到org mnode ical4j作为最常用的ical4jMaven 中央存储库中的库 并且它有最新版
  • SQL Server 的分组字符串聚合/LISTAGG

    我确信有人问过这个问题 但我找不到正确的搜索词 给定一个像这样的模式 CarMakeID CarMake 1 SuperCars 2 MehCars CarMakeID CarModelID CarModel 1 1 Zoom 2 1 Wo