T SQL 计数和按可计算列分组

这段代码为一些数据提供了一个很好的表格

SELECT
    [cntQUEUE] AS cntqueue,[cntdate],[cntINKTONERBLACK],(CASE 
         WHEN LAG(cntinktonerblack) OVER (PARTITION BY cntqueue ORDER BY cntqueue,cntdate) < cntinktonerblack
             THEN 1 
             ELSE 0
     END) AS signalcolumn
FROM 
    [watchdocstatsSU].[dbo].[queuescounters]
WHERE 
    [cntINKTONERBLACK] IS NOT NULL
ORDER BY 
    cntqueue,cntDATE ASC

T SQL 计数和按可计算列分组

有没有办法计算信号列中的“1”并将第一列分组

T SQL 计数和按可计算列分组

ziqi_wangshuai 回答:T SQL 计数和按可计算列分组

您可以使用子查询:

select cntqueue,sum(signalcolumn)
from (select cntQUEUE,(case when lag(cntinktonerblack) over (partition by cntqueue order by cntqueue,cntdate) < cntinktonerblack
                   then 1 else 0
              end) as signalcolumn
      from [watchdocstatsSU].[dbo].[queuescounters] 
      where [cntINKTONERBLACK] is NOT null
     ) q
group by cntqueue
order by cntqueue;
本文链接:https://www.f2er.com/542.html

大家都在问