设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
一个sql开发问题
返回列表
发新帖
一个sql开发问题
[复制链接]
11
|
9
|
2011-11-1 16:24:51
|
显示全部楼层
|
阅读模式
一个表结构如下:
id date
sj
cs
zz
d_id
12013-03-01 10.9
2
100
1
22013-03-02 10.8
2
100
1
32013-03-03 10.7
2
100
1
42013-03-04 11.2
2
100
1
52013-03-01 20.9
2
80
2
62013-03-02 20.8
2
80
2
72013-03-03 30.7
3
90
2
82013-03-04 30.2
3
90
2
如上:
d_id是一个档案标识,sj应该随时间的变化减小或不变,除非在cs和zz一起变大时,sj会随zz增加的部分相应增加一定数值;
现在异常数据id=4时,sj变大,但不满足cs和zz变大这个条件,现在需要写语句把id=4的这种情况找出来,不知道有何好的办法没有,数据量比较大,一个月的数据需要比较,大约每天300w行记录,300w*30,数据量很大!谢谢
回复
使用道具
举报
千问
|
2011-11-1 16:24:51
|
显示全部楼层
cursor
回复
使用道具
举报
千问
|
2011-11-1 16:24:51
|
显示全部楼层
用分析函数LAG(....) OVER(ORDER BY ....)取到上一条的cs和zz, 然后和当前的作比较。
回复
使用道具
举报
千问
|
2011-11-1 16:24:51
|
显示全部楼层
newkid 发表于 2013-3-18 23:58
用分析函数LAG(....) OVER(ORDER BY ....)取到上一条的cs和zz, 然后和当前的作比较。
3Q,今天又分析了一下实际情况,没有办法一句话出结果,还是安心的写遍历了,其中难点在部分记录是空行上
回复
使用道具
举报
千问
|
2011-11-1 16:24:51
|
显示全部楼层
select d_id ,time-nm,cs,sj, from
(select d_id,to_number(to_char(date,'yyyymmdd')) time,cs,sj rownum as nm from table
order by sj desc );
想利用序列和时间的关系,计算比较;
业务特性,在cs和zz没有增加的情况下,sj应该按照时间的增加变小的,如果不存在空值的情况下,跨月时处理下,语句可以写出来的,但实际情况比较复杂,还是按部就班的写遍历比较了
回复
使用道具
举报
千问
|
2011-11-1 16:24:51
|
显示全部楼层
zyqjason 发表于 2013-3-19 23:32
select d_id ,time-nm,cs,sj, from
(select d_id,to_number(to_char(date,'yyyymmdd')) time,cs,sj rownum ...
为什么碰到空值就不行?空值的比较规则是什么?
游标能做到的,分析函数往往也能做到。
回复
使用道具
举报
千问
|
2011-11-1 16:24:51
|
显示全部楼层
我就是过来学习的……
回复
使用道具
举报
千问
|
2011-11-1 16:24:51
|
显示全部楼层
dlsonic 发表于 2013-3-20 08:11
我就是过来学习的……
俺也是过来看看的
回复
使用道具
举报
千问
|
2011-11-1 16:24:51
|
显示全部楼层
需求描述不是很清楚,可能会有误解,
问题1. ID是不是按时间升序排序(即ID越小,表示这条记录的时间越早),如果不是的话,“sj应该随时间的变化减小或不变”这一点如果判别?
问题2. 如果以上第1点的ID是按时间升序排序,那么ID in (4,5,6,7,8)的记录都会被找出来,如果你只是想找出ID 为4的记录,那是不是应该以d_id分组,每一组内去这样查找?
如果以上第1点和第2点都成立,那么以下代码可以找出ID=4的记录,
select *
from tab_temp a
whereexists (select null
fromtab_temp b
where b.id < a.id
and b.d_id = a.d_id
and b.sj < a.sj
and not (b.cs < a.cs
and b.zz < a.zz));
回复
使用道具
举报
千问
|
2011-11-1 16:24:51
|
显示全部楼层
haolin_niba 发表于 2013-3-20 17:25
需求描述不是很清楚,可能会有误解,
问题1. ID是不是按时间升序排序(即ID越小,表示这条记录的时间越早 ...
1、id只是序列,理论是随时间变化的,但顺序可能不准,序列问题;
2、是应该在一个组内查找;
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行
1
屁胀胀痛解手也解不出来怎么办
2
一个月前突然脸部红红的痒痒的,还脱皮,
3
北京哪里治疗阴道炎最好
4
怀孕四个多月了,昨天检查血压低,低压5
5
风热犯肺饮食治疗
6
散发型男型白癜风治疗时可以吃芒果吗
7
神经炎吃什么药管用呢
8
肾小球肾炎饮食指南
9
北京治鼻窦炎多少钱
10
女孩20岁声音有点沙哑有时候不知道怎么
11
小孩白癜风患者可以吃芒果吗
12
孕47天查血孕酮15.59UG/L,H
13
风热犯肺饮食疗法
14
北京治阴道炎多少钱
15
医生偶尔尿尿的时候有尿白,像精液一样,
16
北京阴道出血的治疗
17
医生你好,我最近也有给她喂乳酶生,也不
18
风热犯肺饮食禁忌
19
腰痛串着痛是什么情况
20
你好,请问现在5月份底做了人流,六月份
21
武汉会阴裂伤哪家好
22
北京阴道出血检查
23
您在经期吃或喝生冷物有什么害处呢?
24
你好,四维检查说胎儿双肾盂分离?什么原
25
北京治疗霉菌性阴道炎哪里好
26
坐后站起来腰部右侧疼痛,开始走路的时候
27
上海治梅毒的费用
28
风热犯肺饮食方案
29
石家庄躁狂症治疗费用
30
北京子宫肌瘤要花多少钱
31
郑州哪里治疗脑膜炎最好
32
成都治疗帕金森哪里好
33
阳光晒过后皮肤起疙瘩
34
北京哪里治子宫癌好
35
你好,请问我来完例假都有三四天了,这两
36
我被狗不小心咬到了我的阴唇,当时只处理
37
贵阳哪里可以上环
38
腰痛串着痛是什么原因
39
指甲短又宽以前小时候喜欢咬指甲现在才开
40
请帮我看下彩超结果是不是正常子宫;后位
41
第一尾骨骨折,大便频繁
42
孩子*岁了,有时阴道那有白色东西流出来
43
病毒性支气管炎能吃什么水果
44
吃什么东西就能补血小板了
45
小孩得了白癜风可以喝酸奶吗
46
北京治疗子宫内膜异位费用是多少
47
脚碗扭伤严重,瘀血已散,筋扭伤半个月还
48
做月子期间,肩膀和膝盖痛凉
49
成都神经衰弱的治疗费用
50
月经又迟了半个月,怀孕几率大吗?
51
我家宝宝快八个月了最近一段时间不肯喝奶
52
成都治疗淋菌性咽炎
53
武汉结肠过敏中医
54
我奶奶身上起了大点点很痒昨天晚上吃了阿
55
病毒性支气管炎能吃蜂蜜吗
56
哺乳期吃了一点点芦荟要紧吗?
57
患有急性胆囊炎核磁共振扫描无结石胆壁厚
58
氨基葡萄糖糖尿病人吃有什么作用或危害,
59
我几年就有鼻炎,后来吃了一年药好了.最
60
成都淋巴肉芽肿的治疗
61
你好同房后洗阴道可能怀孕吗
62
武汉治疗肠息肉病哪家好
63
我结扎了!每次月经来总是迟好几天,量很
64
您好,我想请问一下,我的两个前脚掌现在
65
你好剖腹产15天能吃西瓜吗
66
有时候用手能翻开出来,这是正常的吗
67
最近一年多阴茎发软。有早泄的症状。在我
68
燥邪犯肺能吃鱼吗
69
北京哪里看附件炎好
70
是胎盘粘连,10个月来的月经,b超数据