“Pivot”一定要和“聚合函数”一起使用吗?

starrycheng 2012-09-28 01:10:23
pivot (sum(Qty) for DADay in ([00],[01],[02])


问题:这里的“Qty”只有一个,不需要“Sum”,也不需要“avg”。。。但是不用聚合函数,这里又会提示语法错误,怎么办呢???
...全文
732 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lugyedo 2013-10-11
  • 打赏
  • 举报
回复 1
貌似必须用聚合函数,用max或min吧
DBA_磊仔 2012-09-28
  • 打赏
  • 举报
回复
简而言之 。。必须的
--小F-- 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用 1 楼 的回复:
MAX就可以了

跑不了聚合函数
MAX也是聚合
[/Quote]


我又没说可以不用聚合函数。

PIVOT其实和MAX(CASE ..WHEN )的执行计划都一样

PIVOT三个步骤:


1. P1 分组
2. P2 扩展
3. P3 聚合
zhengnan2012 2012-09-28
  • 打赏
  • 举报
回复
pivot 与以前的 方式一样,只是变了一下写法,所以也要用聚合,

就像 group by 里面没有的字段也要用聚合
以学习为目的 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
pivot (sum(Qty) for DADay in ([00],[01],[02])


问题:这里的“Qty”只有一个,不需要“Sum”,也不需要“avg”。。。但是不用聚合函数,这里又会提示语法错误,怎么办呢???
[/Quote]

这个是语法规则,必须要使用聚合函数
水族杰纶 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
MAX就可以了
[/Quote]
跑不了聚合函数
MAX也是聚合
gogodiy 2012-09-28
  • 打赏
  • 举报
回复
1楼小F姐姐已经说了,另外楼主你后面的in ([00],[01],[02],是不是应该改成in (['00'],['01'],['02']。
SQL77 2012-09-28
  • 打赏
  • 举报
回复
PIVOT

(

<聚合函数>(<要聚合的列>)
FOR

[<包含要成为列标题的值的列>]

IN ( [第一个透视的列], [第二个透视的列],

... [最后一个透视的列])

) AS <透视表的别名>

--小F-- 2012-09-28
  • 打赏
  • 举报
回复 1
MAX就可以了

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧