Sql server 在SQL中插入具有最大值的布尔列

Sql server 在SQL中插入具有最大值的布尔列,sql-server,Sql Server,我有这样一个数据集: 我只想在sql中添加一列,其中每个单元的最大循环数为1,其他循环数为0,如下所示: 我尝试按以下方式编写脚本,但也有一些错误,我不想聚合meauser1和measure2参数: 选择单位, 当maxcycle then 1从dbo.fd001结束时的情况 分组 按单位排序您需要窗口功能: select t.*, (case when cycle = max(cycle) over (partition by unit) then 1 else end) as

我有这样一个数据集:

我只想在sql中添加一列,其中每个单元的最大循环数为1,其他循环数为0,如下所示:

我尝试按以下方式编写脚本,但也有一些错误,我不想聚合meauser1和measure2参数:

选择单位, 当maxcycle then 1从dbo.fd001结束时的情况 分组
按单位排序

您需要窗口功能:

select t.*, 
       (case when cycle = max(cycle) over (partition by unit) then 1 else end) as failure
from dbo.fd001 t;

您使用的是什么类型的数据库?请为问题添加相关标记。您的查询的错误消息是什么?对不起,这是SQL server。我的错误是:在预期条件的上下文中指定的非布尔类型的表达式,靠近“then”。另外,这不是一个很好的脚本,因为它会聚合其他两个参数measure1和measure2,但我不想按它们分组。谢谢,你能告诉我分区方式和分组方式的区别吗?@SepideH。GROUPBY将聚合结果将最小化行,而分区将仅对基本结果进行聚合&不会最小化行。