开窗函数-逐层累计

编辑
  • 文档创建者:zsh331
  • 浏览次数:2562次
  • 编辑次数:4次
  • 最近更新:jiangsr 于 2018-06-13
  • 1. 环境

    注意事项:由于9.0设计器内置的是sqlite数据库,在使用上很多语法都不支持,请将sqlite数据库文件迁移到主流数据库(MySql、MSSQL、Oracle…)后运行。

    迁移方法:使用第三方软件迁移内置FRDemo数据库到指定数据库

    本文运行环境:Microsoft SQL Server 2012 - 11.0.2100.60 (X64) 

                         Copyright (c) Microsoft Corporation

                         Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

    2. 描述

    对于一些数据表,我们想对每一组中将每层与上一层数据相加,得到这一层的累计结果,考虑到效率问题,不想在模板中进行单元格设置,此时我们就需要在建立数据集时直接通过sql处理,如下图所示的年度累计:


    3. 思路ROW_NUMBER() OVER ()

    4. 示例

    3.1 准备数据

    打开软件自带的FRDemo库中的【大陆汽车销售】表:


    3.2 逐层累计Sql

    SELECT t.*,sum(t.销量) over(PARTITION BY t.年份 order by t.月份) as 年度累计 FROM 大陆车辆销售 t;

    3.3 效果预览

    执行上述sql语句,效果如下:


    注1:此方法是在数据集中直接进行了sql处理实现逐层累计,后续可直接调用字段。

    注2:在单元格中实现逐层累计请参考:逐层累计


    附件列表


    主题: 专题总结
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]