我想根据多列和列中的特定值来计算行数。请检查附表。
计算以下值:
ID Date Action = 'C'
我试过了
COUNT(*) OVER (PARTITION BY ID, Date, Action = 'C') AS Count
,但它没有用。你们中有人知道如何计算这个字段吗?
谢谢你。
我想根据多列和列中的特定值来计算行数。请检查附表。
计算以下值:
ID Date Action = 'C'
我试过了
COUNT(*) OVER (PARTITION BY ID, Date, Action = 'C') AS Count
,但它没有用。你们中有人知道如何计算这个字段吗?
谢谢你。
这是你想做的吗?
select
ID,
Date,
Action,
case Action
when 'C' then COUNT(*) OVER (PARTITION BY ID, Date)
else null
end as count
from your_table
我想你想要:
SELECT . . .,
(CASE WHEN Action = 'C'
THEN COUNT(*) OVER (PARTITION BY ID, Date, Action)
END) as c_count
这会将计数放在行中Action = 'C'
。如果您想要所有行中的计数,则:
SELECT . . .,
COUNT(CASE WHEN Action = 'C' THEN 1 ELSE 0 END) OVER (PARTITION BY ID, Date) as c_count
我想你想要:
select t.*,
(select count(*)
from table t1
where t1.date = t.date and t1.id = t.id and t1.action = 'C'
)
from table t;