12
返回列表 发新帖
楼主: psop123456

[PL/SQL] 请教大家,求一条sql语句

[复制链接]
论坛徽章:
3
ITPUB15周年纪念
日期:2016-10-13 13:15:34秀才
日期:2017-03-20 13:42:20秀才
日期:2017-03-28 15:59:38
11#
发表于 2016-8-26 15:30 | 只看该作者
提供另一种实现,效率不如bell大神的好
SELECT REGION, MAX(LV)
  FROM (SELECT LEVEL LV, REGION
          FROM (SELECT *
                  FROM (SELECT DT,
                               REGION,
                               CASE
                                 WHEN LAG(AMOUNT, 1, AMOUNT)
                                  OVER(PARTITION BY REGION ORDER BY DT) <
                                      AMOUNT THEN
                                  1
                                 ELSE
                                  0
                               END AS FLAG
                        
                          FROM PRODUCT)
                 WHERE FLAG = 1)
        CONNECT BY NOCYCLE PRIOR REGION = REGION
               AND PRIOR ADD_MONTHS(DT, 1) = DT)
GROUP BY REGION

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:08:28
12#
 楼主| 发表于 2016-8-26 15:45 | 只看该作者
@bell6248  有没有其他的方法呢?

使用道具 举报

回复
论坛徽章:
126
ITPUB元老
日期:2007-07-04 17:27:50会员2007贡献徽章
日期:2007-09-26 18:42:10现任管理团队成员
日期:2011-05-07 01:45:08优秀写手
日期:2015-01-09 06:00:14版主7段
日期:2015-07-16 02:10:00
13#
发表于 2016-8-26 15:47 | 只看该作者
psop123456 发表于 2016-8-26 15:45
@bell6248  有没有其他的方法呢?

这种方法为何不行? 莫非不是oracle数据库?

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:08:28
14#
 楼主| 发表于 2016-8-26 16:21 | 只看该作者
bell6248 发表于 2016-8-26 15:47
这种方法为何不行? 莫非不是oracle数据库?

是的,数据库不一样,是teradata数据库

使用道具 举报

回复
论坛徽章:
126
ITPUB元老
日期:2007-07-04 17:27:50会员2007贡献徽章
日期:2007-09-26 18:42:10现任管理团队成员
日期:2011-05-07 01:45:08优秀写手
日期:2015-01-09 06:00:14版主7段
日期:2015-07-16 02:10:00
15#
发表于 2016-8-26 16:31 | 只看该作者
psop123456 发表于 2016-8-26 16:21
是的,数据库不一样,是teradata数据库

不熟悉teradata, 你去teradata的论坛问一下吧

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:08:28
16#
 楼主| 发表于 2016-8-29 09:20 | 只看该作者
bell6248 发表于 2016-8-26 16:31
不熟悉teradata, 你去teradata的论坛问一下吧

bell大神,months_between和lag的分析函数不支持,有什么可替代的呢?

使用道具 举报

回复
论坛徽章:
126
ITPUB元老
日期:2007-07-04 17:27:50会员2007贡献徽章
日期:2007-09-26 18:42:10现任管理团队成员
日期:2011-05-07 01:45:08优秀写手
日期:2015-01-09 06:00:14版主7段
日期:2015-07-16 02:10:00
17#
发表于 2016-8-29 11:14 | 只看该作者
psop123456 发表于 2016-8-29 09:20
bell大神,months_between和lag的分析函数不支持,有什么可替代的呢?

你自己问一下teredata的技术人员吧, 我不熟悉teredata, 这里是oracle开发论坛,你问错地方了

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2016-11-11 10:43 | 只看该作者
菜鸟   每天进步中

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表