Sql 如何按表达式进行分区
我想用表达式而不是字段进行分区。接受这个查询Sql 如何按表达式进行分区,sql,sql-server-2008,Sql,Sql Server 2008,我想用表达式而不是字段进行分区。接受这个查询 SELECT ID, Value, Status, SUM(Value) OVER(PARTITION BY ID) AS "Sum", COUNT(*) OVER(PARTITION BY ID, Status = 'Ready') AS ReadyCount --Error here FROM TestAggregation 我需要获得分组状态的ReadyCount,但只需要将计数应
SELECT
ID,
Value,
Status,
SUM(Value) OVER(PARTITION BY ID) AS "Sum",
COUNT(*) OVER(PARTITION BY ID, Status = 'Ready') AS ReadyCount --Error here
FROM TestAggregation
我需要获得分组状态的ReadyCount,但只需要将计数应用于就绪状态。这可能吗?您可以使用条件和:
SELECT
ID,
Value,
Status,
SUM(Value) OVER(PARTITION BY ID) AS "Sum",
SUM(CASE WHEN Status = 'Ready' THEN 1 ELSE 0 END) OVER(PARTITION BY ID) AS ReadyCount --Error here
FROM TestAggregation
在查看文档中的OVER条款后,我删除了该评论。