Pivot Function添加的行数超出预期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pivot Function添加的行数超出预期相关的知识,希望对你有一定的参考价值。

我想不出一个更好的头衔,如果有人能想到更好的头衔,我愿意接受建议。

我有一个看起来像这样的表:

Source    TableName     Detail     active_status     RowCount
a          table_one     stuff      active               500
b          table_two     stuff_2    active               750
c          table_three   stuff_3    inactive            1000
d          table_four    stuff_4    active               200
e          table_five    stuff_5    inactive             200

当我运行此查询时:

select [a], [b], [c], [d], [e]
from (select [source], [rowcount] from ParentStaged) as src_tbl
pivot
(
    avg([rowcount])
    for source in ([a], [b], [c], [d], [e])
) as pivot_tbl;

我得到这个结果:

  a       b        c      d       e
500     750     1000    200     200

当我运行此查询时:

select [a], [b], [c], [d], [e]
from (select [source], [TableName], [rowcount] from ParentStaged) as src_tbl
pivot
(
    avg([rowcount])
    for source in ([a], [b], [c], [d], [e])
) as pivot_tbl;

我产生了这个结果:

   a        b        c       d       e
 500     null     null    null    null
null      750     null    null    null
null     null     1000    null    null
null     null     null     200    null
null     null     null    null     200

为什么是这样?

答案

我想我弄明白了为什么。

它与我在from子句中添加的列数无关,它与我正在添加的内容有关。

聚合根据我在from子句中列出的内容进行聚合来执行计算。 group by是根据我在聚合中使用的内容执行的。

如果我列出了其他组之间不常见的列,那么这就是导致出现空值的原因。

如果我列出了常见的列,则不会显示空值。

以上是关于Pivot Function添加的行数超出预期的主要内容,如果未能解决你的问题,请参考以下文章

在获取数据期间索引超出部分中的行数范围

Xcode:如何快速判断哪些文件的行数超出了最大列限制?

是否有使用Pandas限制数据透视表的行数的功能?

休眠 - 批量更新从更新返回意外的行数:0 实际行数:0 预期:1

如何解决“批量更新从更新返回意外的行数;实际行数:0;预期:1”问题?

StaleStateException:批量更新从更新 [0] 返回了意外的行数;实际行数:0;预期:1