gpt4 book ai didi

SQL 分组依据和窗口函数

转载 作者:行者123 更新时间:2023-12-02 07:30:17 26 4
gpt4 key购买 nike

我在 SQL 语句方面遇到了一些困难,希望有人愿意为我指出正确的方向。

下面是我的 table 的图片:

enter image description here

正如您在这里看到的,我有一个名为“状态”的列。基本上,我想将与特定 BuildID 关联的所有“状态”分组,并将它们显示在我的 SQL 输出的额外列中。

我很接近,但还不够。

下图中是我用来尝试实现此目的的语句示例:

enter image description here

正如您在此处看到的,它已完成 SUM 并添加了 TotalTime 并创建了我需要的额外列。但是,它没有将所有内容分组到一条记录中,而是为每个 BuildID 创建了 2 条额外的行。一个值为“Running”状态,另一个记录值为“Break”状态,另一个记录在两个状态上都包含值 0。

现在我想让它为每个 BuildID 将其分组为一个记录。就像我在下面添加的图片一样:

enter image description here

上图是我希望显示记录的方式。但问题是我添加了 WHERE [State] = Running,我知道这是错误的但只是以此为例。如您所见,“中断”列没有任何值。

我希望这是有道理的,并希望有人能指出我正确的方向吗?

这是一个关于 SQL fiddle 的例子 http://sqlfiddle.com/#!3/7b6b9/2

感谢您花时间阅读本文:)

最佳答案

已经对 sql 进行了一些改进,开始吧:

SELECT BuildID,Product, Program, 
sum(CASE WHEN State = 'Running' THEN cast(TotalTime as INT) ELSE 0 END) AS Running
, sum(CASE WHEN State = 'Break' THEN cast(TotalTime as INT) ELSE 0 END) AS Breakt
FROM Line1Log
GROUP BY BuildID,Product, Program

请查看SQLFiddle

不确定我是否遗漏了什么 :-),但解决方案看起来非常简单。让我知道。

关于SQL 分组依据和窗口函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22556366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com