db2 OLAP在线分析语句PARTITION BY ORDER BY 问题

Ta曰丿、她活 2019-04-11 09:05:24
先上SQL:
with temp(area_code, is_province, target_value) AS
( --筛选出省内地市和省外省的目标数据(is_province 区分省内外)
SELECT area_code, (CASE area_type WHEN '03' THEN 1 ELSE 0 END ), target_value
FROM bit_warn_target
WHERE warn_code = 'WARN_SELL' AND data_year = '2019' AND toba_code = '0535' AND area_code <> '420000'
),
temp2(area_code, is_province, target_value, snw_terget_value) AS
( --省市目标及省内外目标(省内目标为省内地市目标总和,省外目标为省外省目标总和)
SELECT area_code, is_province, target_value,
SUM(target_value) OVER(PARTITION BY is_province) AS snw_terget_value
FROM temp
)
SELECT * FROM temp2 ORDER BY is_province@
结果为:这种结果是对的,省内外目标数据就两种情况

但是问题就是来了 SELECT * FROM temp2 ORDER BY is_province@换成
SELECT * FROM temp2 ORDER BY is_province DESC@
结果就变成了

结果完全不一样了。ORDER 只是对结果集进行排序呀,为什么会影响结果集呢。。。如果ORDER BY是放在OVER里面影响了结果集我还能理解。但是放在最后面影响了结果集完全不能理解。请求各位大佬帮我解释一下。
...全文
643 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ta曰丿、她活 2019-09-06
  • 打赏
  • 举报
回复
谁能帮我删一下这个贴,谢谢
Ta曰丿、她活 2019-04-15
  • 打赏
  • 举报
回复
有没有大佬空余之际帮我解释下啊,先谢过了~
Ta曰丿、她活 2019-04-11
  • 打赏
  • 举报
回复
求救啊 实在想不通

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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