SQL Server:将 GROUP BY 的结果拆分为单独的列

2024-04-18

我有一个 SQL Server 2008 R2 数据库,其中包含大约 5 亿行数据,目前看起来像这样

ID          Eventtype
201         1
201         3
201         4
201         1
201         1
664         1
664         0
664         1
664         3

我似乎找不到能够以这种格式提供数据的查询:

ID         Event0   Event1  Event2  Event3  Event4
201        0        3       0       1       1
664        1        2       0       1       0

据我目前所知:

select distinct ID as ID, count(EventType)
from database.dbo.events 
group by questID, EventType

它将数据返回给我,如下所示:

ID       EventType
201      0
201      3
201      0
201      1
201      1
664      1
664      2
664      0
etc.

这确实显示了我需要的所有数据,但是在尝试找出哪些数据时涉及格式化和猜测EventType这是相当令人沮丧的。

谁能建议一个更好的查询,以良好的格式返回数据?


怎么样...

select ID, sum(Event0), sum(Event1), sum(Event2), sum(Event3), sum(Event4)
from (
    select ID, 
        case EventType when 0 then 1 else 0 end as Event0,
        case EventType when 1 then 1 else 0 end as Event1,
        case EventType when 2 then 1 else 0 end as Event2,
        case EventType when 3 then 1 else 0 end as Event3,
        case EventType when 4 then 1 else 0 end as Event4
    from dbo.events
) E
group by ID
  • 假设正好有 5 个事件类型,编号为 0 到 4。
  • 根据表的索引方式,它可能需要大量的排序空间,如果没有足够的可用空间,则可能会失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server:将 GROUP BY 的结果拆分为单独的列 的相关文章

  • 触发器以捕获服务器中的架构更改

    是否可以实现类似以下触发器的东西 CREATE TRIGGER tr AU ddl All Server ON DATABASE WITH EXECUTE AS self FOR DDL DATABASE LEVEL EVENTS AS D
  • 如何在 SQL Server 查询中的 FROM 子句中使用变量?

    我正在创建一个查询 该查询将选择表中的所有数据 查询将根据我将传递给存储过程的变量选择表 在我的例子中 如果我执行example sp table1它将选择table1 如果我使用同样的事情example table table2 应该选择
  • 防止从 SSMS 导出的文件中受影响的行条目

    我怎样才能防止这样的条目 123456 rows affected 在文件末尾导出的文本文件中 似乎没有找到选项 谢谢 你可以使用 SET NOCOUNT ON 不设置计数 https learn microsoft com en us s
  • 在调用存储过程 Sql Server 2008 时使用嵌套存储过程结果

    是否可以在另一个存储过程中使用一个存储过程的结果 I e CREATE PROCEDURE dbo Proc1 ID INT mfgID INT DealerID INT AS BEGIN DECLARE Proc1Result UserD
  • SQL 解析键值字符串

    我有一个像这样的逗号分隔字符串 key1 value1 key2 value2 key3 value3 key1 value1 1 key2 value2 1 key3 value3 1 我想将它解析成一个如下所示的表 Key1 Key2
  • 在分布式事务中手动登记后,使用 enlist=false 的连接不会关闭

    我有一个分布式事务上下文使用ServiceDomain 在其中 我打开一个 SQL 连接 其中连接字符串指定Enlist false 这样它就不是自动地被纳入交易 然后 如果我使用手动在分布式事务中登记连接EnlistDistributed
  • C# 事务中的事务

    我正在使用 C 将发票的平面文件导入到数据库中 如果遇到问题 我将使用 TransactionScope 回滚整个操作 这是一个棘手的输入文件 因为一行不一定等于一条记录 它还包括链接记录 发票将包含标题行 行项目和总计行 有些发票需要跳过
  • 游标与更新

    一家公司使用 SQL Server 数据库来存储有关其客户及其业务交易的信息 您所在的城市引入了新的区号 对于前缀小于 500 的电话号码 区号 111 保持不变 前缀为 500 及以上的号码将分配区号 222 客户表中电话列中的所有电话号
  • 如何从 SQL Server 中的存储过程检索参数列表

    使用 C 和 System Data SqlClient 有没有办法在实际执行 SQL Server 上的存储过程之前检索属于该存储过程的参数列表 我有一个 多环境 场景 其中同一数据库模式有多个版本 环境的示例可能是 开发 暂存 和 生产
  • SQL Server - 删除语句增加日志大小

    我有一个LOGGIN数据库很大 400 GB 它有数百万行 我刚刚跑了一个delete该语句花费了 2 5 小时并删除了可能数百万行 delete FROM DB dbo table where Level not in info erro
  • 动态/条件 SQL 连接?

    我在 MSSQL 表 TableB 中有数据 其中 dbo tableB myColumn 在特定日期后更改格式 我正在做一个简单的连接到该表 Select dbo tableB theColumnINeed from dbo tableA
  • 对 ExecuteNonQuery() 的单次调用是原子的

    对 ExecuteNonQuery 的单次调用是否是原子的 或者如果单个 DbCommand 中有多个 sql 语句 那么使用事务是否有意义 请参阅我的示例以进行说明 using var ts new TransactionScope us
  • TSQL - 创建从日期表,同时忽略带条件的中间步骤

    我在 MS SQL 服务器中有以下表结构 现在 我想根据以下规则获取每个 id 的 in 日期 如果第二天 23 59 出 和 00 00 进 则忽略这些 如果同一天有 out 和 in 请忽略这些 例如我应该得到以下结果 id in ou
  • VBA仅清除数据透视表缓存,但保留数据透视表结构

    如何使用VBA清除数据透视表缓存 但不破坏数据透视表结构 我的数据透视表已连接到外部数据源 SQL 源决定哪个用户应该查看数据的哪一部分 当表刷新时 源会填充该表 我想保存 Excel 文件并使用干净的数据透视表 内部没有数据 分发它 结果
  • Sql Server 字符串到日期的转换

    我想像这样转换一个字符串 10 15 2008 10 06 32 PM 转换为 Sql Server 中的等效 DATETIME 值 在 Oracle 中 我会这样说 TO DATE 10 15 2008 10 06 32 PM MM DD
  • 列的 SQL MAX(包括其主键)

    Short 从下面的 sql select 中 我获取了 cart id 和该购物车中最高价值商品的值 SELECT CartItems cart id MAX ItemValues value FROM CartItems INNER J
  • 将存储过程的结果加上额外的列插入表中

    如何在其中插入更多列dbFileListOnly表以及 EXEC 查询 INSERT INTO admindb dbfilelistonly path col1 col2 path EXEC RESTORE FILELISTONLY FRO
  • 别名 .\SQLEXPRESS 为 (LocalDB)\MSSQLLocalDB

    I have SQLEXPRESS已安装 但代码假设我有一个名为 LocalDB MSSQLLocalDB 如何创建别名以便不必安装SQLLocalDb 启动 Sql Server 配置管理器 使用以下参数为 64 位 SQL Native
  • SQL 查询在多用户环境中返回错误值

    一段时间以来 我们在我们的一个客户站点上发现了奇怪的数据完整性问题 经过大量调查后 我们现在已将其隔离为数据库调用 如果两个用户同时调用同一个存储过程 有时一个用户会得到另一个用户的结果 我们设置了一个测试来验证这一点 并且我们有一个循环
  • SQL Server 到 er 模型

    是否有程序可以将 SQL Server 数据库图表转换为 er 模型 或者从 SQL Server 服务器创建数据库的 er 模型 在 SQL Server 中 Management Studio 中的每个数据库都有 数据库图 功能 您可以

随机推荐

  • JSP、JavaScript:将字节[]显示为图像

    我使用以下代码片段从文件中选择和读取图像 div class col md 6 form group div
  • 模拟绘画应用的笔触

    我正在尝试编写一个应用程序 可用于使用模拟笔触创建看起来像绘画的图片 是否有任何好的资源可以提供模拟笔触的简单方法 例如 给定用户拖动鼠标经过的鼠标位置列表 画笔宽度和画笔纹理 如何确定要在画布上绘制的内容 我尝试将画笔纹理倾斜到鼠标移动的
  • Eclipse 无法识别 Android 上的“R.id...”

    有什么想法为什么 Eclipse 有时会失败并且无法识别几秒钟前执行的代码吗 下面代码中的 R 下面有红色波浪线 而 5 分钟前还没有 而且我没有更改任何代码 这种情况在 Eclipse 中经常发生 通常我将其关闭并重新启动 一切顺利 这次
  • 在 ansible 角色中引用 defaults/main.yml 中的变量

    我的角色设置如下 角色 测试 任务 main yml name Generate people files template src test j2 dest tmp item name cfg loop people 角色 测试 模板 t
  • 使用 Servlet 和 JSP 验证数字

    我在学习 Web 开发的同时正在开发一个小型 Servlet 和 JSP 应用程序 我有一个关于 jsp 和 servlet 之间的验证和传递值的问题 我有一个 啤酒 类 具有 评级 属性 双精度类型 加载 edit jsp 的 servl
  • Codeigniter - 返回视图作为数据不起作用[重复]

    这个问题在这里已经有答案了 我在 CodeIgniter 2 0 2 中将视图作为数据返回时遇到问题 我不确定此版本的 CI 中是否提供此功能 这可能是问题所在 但我希望不是这样 因为目前无法选择升级 我们运行两个两个网站 其中一个我们使用
  • 如何只选择表格中的几列

    我有一个包含大约 1000 列的表 当我使用 Select from Table 它返回表的整个记录 但我只想要有限的记录列 col1 col2 col3 col4 col 5 col1000
  • boost::asio 将套接字转换为安全套接字

    我正在用 C 为 Minecraft 游戏编写一个服务器 客户端通过普通套接字向服务器发送初始握手数据包 然后 服务器将 RSA 密钥发送回游戏 并且从该点开始的所有套接字通信都将使用发送到客户端的 RSA 密钥进行 AES 加密 我有一个
  • 如何在 OpenShift 上安装 Nginx

    虽然我跟着https blog openshift com lightweight http serving using nginx on openshift https blog openshift com lightweight htt
  • 如何沿着简单的路径移动相机

    如何沿着简单的路径 由顶点 点数组创建 移动相机 我需要自动移动它 而不是像第一人称射击游戏那样通过键盘 鼠标事件来移动它 找了这个例子 http trijs org examples webgl geometry extrude spli
  • 如何“重写”现有的 vim 键绑定?

    I want to assign CTRL L to go the next tab tabnext I placed it at vimrc nmap
  • 如何在C中将UTC时间转换为本地时间?

    这是一个简单的问题 但解决方案似乎远非简单 我想知道如何从 UTC 转换为本地时间 我正在寻找一种标准的 C 解决方案 并且或多或少保证可以在任何位置的任何计算机上工作 我已仔细阅读以下链接 但在那里找不到解决方案 在C中将包含本地时间的字
  • 使 K 不同(基数) google OR-TOOLS

    我想知道 google or tools 中是否存在 Solver AllDifferent x 的泛化 允许指定我允许的不同元素的数量 因此 如果 len x 4 则 AllDifferent x 意味着 len set x 4 但是 如
  • 如何让 js2-mode 在 Emacs 中使用空格而不是制表符?

    我在用js2 mode http code google com p js2 mode 在 Emacs 中编辑 Javascript 但我似乎无法让它停止使用制表符而不是空格进行缩进 我的其他模式工作正常 只是遇到 js2 问题 你有 se
  • HtmlAgilityPack获取Title和meta

    我尝试练习 HtmlAgilityPack 但我遇到了一些与此相关的问题 这是我编码的内容 但我无法正确获取网页的标题和描述 如果有人能启发我纠正我的错误 public static void Main string args string
  • 在 R 中测试多个相同的列

    有没有一种简单的方法来测试身份multiple列 例如 通过这个输入 data data table one c 1 2 3 4 two c 7 8 9 10 three c 1 2 3 4 four c 1 2 3 4 有什么东西可以返回
  • 如何向 HPA 提供外部指标?

    问题设置 假设我有 2 个 pod A 和 B 我希望能够根据任意来源的任意数量动态扩展 pod A 假设 pod B 是这样一个源 例如 它可以拥有一个带有端点的 HTTP 服务器 该端点在请求时以 pod A 所需的副本数量进行响应 或
  • 如何使用 LiveData 和 ViewModel 发布改进 API 调用请求方法

    我是 android 和 java 的初学者 我在使用mvvm架构登录时遇到问题 并在android studio中用JAVA语言进行改造 我的代码如下所示 我的代码如下所示 API接口 FormUrlEncoded POST login
  • 从简单的 JSON 字符串加载 D3.js 数据

    图库中的大多数示例都会从 TSV 文件加载数据 如何将以下内容转换为使用本地 json 变量而不是 TSV 数据 d3 tsv data tsv function error data var myEntitiesJson getEntit
  • SQL Server:将 GROUP BY 的结果拆分为单独的列

    我有一个 SQL Server 2008 R2 数据库 其中包含大约 5 亿行数据 目前看起来像这样 ID Eventtype 201 1 201 3 201 4 201 1 201 1 664 1 664 0 664 1 664 3 我似