将枢轴上的计数转换为位/标志?
Posted
技术标签:
【中文标题】将枢轴上的计数转换为位/标志?【英文标题】:Convert count on a pivot to a bit / flag? 【发布时间】:2021-01-24 07:09:06 【问题描述】:我有一个有效的数据透视查询:
SELECT * FROM
(
select [cid], [cid] as c, [Category] from [MyTbl] where [Conditional] = 0
)
as src PIVOT(COUNT(c) FOR [Category] in ([SciFi],[Horror],[Comedy])) AS piv
太棒了,它会产生这样的东西:
cid | SciFi | Horror | Comedy
-----------------------------
1 0 3 0
2 1 2 1
3 6 2 4
但实际上我不想要计数,我只想要一个真或假标志(最好是 0 或 1)
cid | SciFi | Horror | Comedy
-----------------------------
1 0 1 0
2 1 1 1
3 0 1 1
我尝试将 count(c)
位包装在 case 语句中,但我只是遇到语法错误 - 假设枢轴不是那样工作的。
【问题讨论】:
【参考方案1】:我会推荐条件聚合。它比特定于供应商的pivot
语法更加灵活,让您可以轻松地做自己想做的事:
select cid,
max(case when category = 'SciFi' then 1 else 0 end) SciFi,
max(case when category = 'Horror' then 1 else 0 end) Horror,
max(case when category = 'Comedy' then 1 else 0 end) Comedy
from mytbl
where conditional = 0
group by cid
【讨论】:
以上是关于将枢轴上的计数转换为位/标志?的主要内容,如果未能解决你的问题,请参考以下文章
STM32的滴答定时器的计数到0时标志位置1,需要软件清除标志位吗!,还是硬件自动清除
python 将rgb值转换为Maya标志的0.0-1.0值