数据透视表中聚合函数的必要性是啥

Posted

技术标签:

【中文标题】数据透视表中聚合函数的必要性是啥【英文标题】:What is the necessity of aggregate functions in pivot table数据透视表中聚合函数的必要性是什么 【发布时间】:2014-02-24 06:57:47 【问题描述】:

我有一个数据表

id id_1 id_2
1   C1   0
1   C2   0
1   C3   0
1   C4   1
2   C1   0
2   C2   0
2   C3   0
2   C4   0
3   C4   0

我正在使用数据透视表来打印数据

select *
from 
(
    select Id, id_1,id_2
    from table1
) x
pivot
(
    sum(id_2)
    for id_1 in ([C1], [C2], [C3], [C4])
) p

问题: 当不需要聚合函数(在这种情况下为sum)时,有什么必要使用聚合函数,因为所有的值都是不同的。如果我删除聚合函数,那么它会产生一个错误(这是我不明白的一点

SQL Fiddle

谢谢

【问题讨论】:

【参考方案1】:

这里所有的值都是不同的,但是 Oracle 在解析时并不知道这一点。需要聚合以确保没有重复。

是的,他们可能已经在运行时实现了此检查并在发现重复项时引发异常,但事实并非如此似乎是一个武断的决定。

【讨论】:

以上是关于数据透视表中聚合函数的必要性是啥的主要内容,如果未能解决你的问题,请参考以下文章

在没有聚合的熊猫数据透视表中重复条目并重命名列行

Pandas 数据透视表:按特定字符串的计数聚合函数

Sql Server 聚合或数据透视表查询

为熊猫数据透视表中的每个值列定义 aggfunc

将数据透视结果附加(插入)到现有 SQL 表中

T-SQL:没有聚合的数据透视表