【发布时间】:2020-07-06 14:44:02
【问题描述】:
我有这张桌子:
输入
我希望将其转换为另一个表,其中包含
- Date/Id/Order 列(主键列)
- TotalCount 列,包含所有 Cond 列均为 NULL 的原始表的 Count 列的值
- 每个 CondX 列都有一个 Count 列,包含原始表的 Count 列的值,其中 CondX = 1,其余的 Cond = NULL
- 非空 (Cond1 OR Cond2 OR Cond3) + (CondA OR CondB) 的每个组合的一个 Count 列,包含原始表的 Count 列的值,其中两个适用的 Cond = 1,其余 = NULL李>
示例:
所以基本上,我希望我的新表有这些列:
- 日期、ID、订单、总数
- Cond1Count、Cond2Count、Cond3Count、CondACount、CondBCount
- Cond1AndCondACount、Cond1AndCondBCount、Cond2AndCondACount、Cond2AndCondBCount...
从示例图像中,我们最终会得到这些值:
期望的输出
(注意:CondBCount = 0 表示 Order = 2,图片版中漏掉了)
如果我有任何 SQL,我会显示一些 SQL,但实际上我不太确定从哪里开始解决这个问题。我可以天真地做一堆不同的SELECT Count WHERE ...,但我想知道是否有更好的解决方案。
【问题讨论】:
标签: sql sql-server pivot