SQL表-根据条件组合行[重复]

2024-01-05

我有一张像这样的桌子

DateCol       TaskID     EventName
2017-09-25    10         A
2017-07-26    10         B
2017-07-27    10         A
2017-09-14    10         A
2017-07-25    10         B
2017-09-25    10         C
2017-09-28    11         A
2017-11-01    11         D
2017-11-01    11         C

.....数千行

我想要的是这样的输出:对于每个 TaskID,如果事件 A 和 C(不是任何其他组合)发生在同一天(来自 DateCol),则 EventName 列为“A+C”。所以在这种情况下它会显示

DateCol       TaskID     EventName
2017-09-25    10         A+C
2017-07-26    10         B
2017-07-27    10         A
2017-09-14    10         A
2017-07-25    10         B
2017-09-28    11         A
2017-11-01    11         D
2017-11-01    11         C

你可以看到这一行

2017-09-25    10         A

and

2017-09-25    10         C

现在是一排,

2017-09-25    10         A+C

但其他一切都没有改变。

我需要使用什么样的 SQL 语句来进行这样的调整?


假设:仅将 2 个不同的 EventName 合并为 1 个。

有点粗糙,但应该可以。

; with
cte as
(
    select  t.DateCol, t.TaskID, 
        t.EventName,
        new_EventName   = 
            case when   t.EventName in ('A')        
                 and    max(t.EventName) over (partition by t.DateCol, t.TaskID)    = 'C'
                 then   'A+C'
                 when   t.EventName in ('C')
                 and    min(t.EventName) over (partition by t.DateCol, t.TaskID)    = 'A'
                 then   'A+C'
                 else   NULL
                 end
    from    yourtable t
)
select  distinct DateCol, TaskID, EventName = coalesce(new_EventName, EventName)
from    cte 

如果还有其他情况不起作用,请发布带有预期结果的示例数据

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

SQL表-根据条件组合行[重复] 的相关文章

随机推荐

  • 在 x64 Windows 中,有没有办法运行 Runtime.exec() 进程以避免“注册表重定向”

    我们的应用程序在 jvm 32 位中运行 即使在 Windows x64 中也是如此 现在 在某些时候 我需要访问一些注册表值 例如 HKEY LOCAL MACHINE SOFTWARE mycomp 我通过执行来做到这一点 cmd C
  • 如何使用SQL和VBA从Access表中获取多个小计?

    我正在尝试使用 Windows 中的外部 vbs 文件 vbscript 从 Access Table 获取多个小计 mySQL SELECT Data Time Quantity Sum Data Price AS SumOfPrice
  • php shell_exec($cmd) 不在 cronjob 中运行

    很抱歉 我相信 这个问题很糟糕 但是谷歌和这个论坛中的其他文章无法帮助我 我将运行一个 php 脚本 其中包含以下代码 cmd duck u user name p pwd parallel 1 e overwrite y throttle
  • 如何查询数据库字段但忽略 HTML 标记?

    我们有一个包含用于在网站上格式化的 HTML 标记的字段 但我们只需要查询应在屏幕上呈现的文本 而不是 CSS 标签 标签名称 属性名称等内容 有没有办法忽略 SQL 查询或存储过程中的标记 如果有办法做到这一点 我们以后会遇到性能问题吗
  • 如何更改UIWebView中的字符编码?

    问题总结 在 iOS 上浏览非英文网站时 如果没有使用 UIWebView 明确指定正确的字符编码 则页面无法正确显示 详细解释 As the loadRequest UIWebView 中的方法将使用从 Web 服务器发送的字符集标头中指
  • 将查询参数传递给 Flask 装饰器

    我正在为我的 Flask 服务器设置一个令牌身份验证系统 并且我希望能够设置一个装饰器 如下所示 app route my data requires token auth def get my endpoint data Return J
  • jquery滑动侧边栏从左到右

    我正在尝试创建一个滑动侧栏 其效果类似于 www wookmark com http www dynamicdrive com dynamicindex1 slideinmenu htm http www dynamicdrive com
  • 使用 ETW 跟踪 Windows 用户模式进程系统调用

    有些人告诉我 ETW 提供了一种捕获用户模式进程发出的系统调用的机制 我已经列举了可用的提供者 并且只提出了两个可能提供此信息的可能的提供者 第一个是 Microsoft Windows Kernel Audit API Calls 该提供
  • 如何使用 pycharm 调试 docker-compose 内运行的进程

    我正在尝试将本地 Pycharm Django 切换到基于 docker 的开发环境 我在 mac 上运行并使用 Docker Compose 很少的 docker 我的 django 应用程序 一些 db 和 nginx 一切运行良好 代
  • scikit-learn 中 SVC 和 SVM 有什么区别?

    来自文档 http scikit learn org stable modules svm htmlscikit learn 实现了 SVC NuSVC 和 LinearSVC 这些类能够在数据集上执行多类分类 另一方面 我还了解到 sci
  • 是否总是可以使用 HTML5

    我一直注意到您可以使用 HTML5 标签播放音频文件 考虑到您只需要使用 1 个元素来播放视频和音频 这看起来真的很方便 一个例子是这个 JSFiddle http jsfiddle net oacLrnvv
  • 如何在 Windows/Linux 上设置 Java Swing 应用程序的 DPI?

    如果您的显示器的 DPI 超过 150 例如 Macbook Pro 您也可能会发现问题 Java Swing 应用程序上的字体对于高 DPI 显示器来说太小 而且我根本无法更改字体大小 它直接忽略Windows DPI 只显示最初的 DP
  • 如何在 Android 中向操作栏显示溢出菜单项

    我正在编写一个Android应用程序 我试图在其中将溢出菜单项显示到 ActionBar 使用这个很棒的教程链接 http wptrafficanalyzer in blog adding action items and overflow
  • 未找到 Codeception Yii

    我尝试使用 codecept 在 Yii2 项目中运行单元测试 并收到下一个错误 PHP Fatal error Class Yii not found in var www html mysite vendor codeception c
  • 运行应用程序时出现 iOS Phonegap Infinite Dialog 错误?

    我在为 iOS 开发 PhoneGap 应用程序时遇到问题 我刚刚将所有 html css javascript 标记复制到phonegap 应用程序中 我在 10 6 8 的 Mac 上使用 xcode3 当我运行该应用程序时 加载并安装
  • 将 nvarchar 值转换为数据类型 int 时转换失败

    我的代码隐藏中出现转换失败的错误 我的代码如下 using SqlCommand cmd new SqlCommand tempUsertype 0 Select from tbl students Select from tbl stud
  • 闪屏安卓

    我正在尝试创建一种效果 看起来就像您在拍摄设备屏幕截图时看到的闪光一样 我的问题是 有什么办法可以做到这一点吗 如果可以的话我可以改变那个小闪光灯的颜色吗 您将需要使用 FrameLayout 或relativelayout 作为根视图 然
  • 从 ResultSet 获取 Integer 对象 [重复]

    这个问题在这里已经有答案了 A ResultSet提供方法getInt 返回原始值int 是否可以获得Integer对象 它允许null 我正在检索的数据库字段可以为空并且getInt 返回我0每当该字段null Thanks 只需检查该字
  • [azure 服务总线 - 如何在 Azure 服务总线中使用 JMS 设置消息 ID

    使用 Spring JMS 向 Azure 服务总线发送消息时 消息 ID 被覆盖 因此 重复检测无法按预期工作 我读过 JMS 文档 其中说 JMSMessageId 不能由生产者设置 它由 JMS 保留供内部使用 现在的问题是如何设置
  • SQL表-根据条件组合行[重复]

    这个问题在这里已经有答案了 我有一张像这样的桌子 DateCol TaskID EventName 2017 09 25 10 A 2017 07 26 10 B 2017 07 27 10 A 2017 09 14 10 A 2017 0