查看: 1807|回复: 9

咨询一条sql语句的写法

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2006-9-24 18:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
咨询一条sql语句的写法
表名:test
表结构:
记录号码    录入时间    录入人工号
------------------------------------------------------------------
0011       2006-7-2       001
0012       2006-7-3       002
0011       2006-7-3       001
0016       2006-7-1       001
0015       2006-7-2       005
0011       2006-7-4       004
0011       2006-7-6       006
0018       2006-7-7       009
0018       2006-7-9       009
0018       2006-7-9       001
0012       2006-7-10       001
0012       2006-7-18       004
0015       2006-7-2       003

问:如何求出有那些记录号码在3天内重复录入次数超过或等于2次。
谢谢!
论坛徽章:
30
雪铁龙
日期:2013-12-09 08:30:26夏利
日期:2013-12-09 08:30:26凯迪拉克
日期:2013-12-09 08:30:26夏利
日期:2013-12-09 08:30:26阿斯顿马丁
日期:2013-12-09 08:30:26ITPUB元老
日期:2006-12-29 22:09:12马上加薪
日期:2014-03-06 12:29:57马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11Jeep
日期:2013-10-21 12:32:41
2#
发表于 2006-9-24 21:27 | 只看该作者
select * from (
select *,count(1) over (partition by 记录号码) c1 from test where 录入时间>=sysdate-3
) where c1>=2

使用道具 举报

回复
论坛徽章:
0
3#
 楼主| 发表于 2006-9-24 22:06 | 只看该作者
2楼的语句欠妥,
重复的意思是:同一记录号码在3天之内连续录入2次或2次以上的视为重复
该题结果应为:
记录号码 录入时间 录入人工号
------------------------------------------------------------------
0011       2006-7-2       001
0011       2006-7-3       001
0011       2006-7-4       004
0011       2006-7-6       006
0018       2006-7-7       009
0018       2006-7-9       009
0018       2006-7-9       001

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44奥运会纪念徽章:马术
日期:2008-08-07 13:19:27奥运会纪念徽章:沙滩排球
日期:2008-08-13 08:47:462010年世界杯参赛球队:巴西
日期:2010-02-12 11:48:16ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31
4#
发表于 2006-9-24 22:11 | 只看该作者
用分析函数
select distinct rec_no from (
select rec_no, input_time - lead(input_time) over (partition by rec_no order by input_time) as time_interval
)
where time_interval>=2

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
46
ITPUB元老
日期:2011-08-06 00:48:09最佳人气徽章
日期:2012-03-13 17:39:18版主1段
日期:2013-03-07 02:21:02ITPUB季度 技术新星
日期:2011-11-18 16:54:31ITPUB伯乐
日期:2012-02-16 14:53:44ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:45会员2007贡献徽章
日期:2007-09-26 18:42:10玉石琵琶
日期:2012-02-21 15:04:38授权会员
日期:2007-01-26 09:19:03数据库板块每日发贴之星
日期:2011-08-04 01:01:01
5#
发表于 2006-9-25 12:04 | 只看该作者
最初由 MountLion 发布
[B]用分析函数
select distinct rec_no from (
select rec_no, input_time - lead(input_time) over (partition by rec_no order by input_time) as time_interval
)
where time_interval>=2 [/B]


不错不错。略改一点。
select distinct rec_no from (
select rec_no, input_time - lead(input_time) over (partition by rec_no order by input_time DESC) as time_interval
FROM TABLE)
where time_interval>=2

使用道具 举报

回复
论坛徽章:
17
生肖徽章:猴
日期:2007-03-01 11:04:52紫蛋头
日期:2011-07-22 21:29:21ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41茶鸡蛋
日期:2012-11-06 19:40:33
6#
发表于 2006-9-25 14:34 | 只看该作者
学习,是否要改成这样
select distinct rec_no from (
select rec_no, input_time - lead(input_time) over (partition by rec_no order by input_time DESC) as time_interval
FROM TABLE)
where time_interva<3

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
38
ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14现任管理团队成员
日期:2012-10-18 17:11:21版主4段
日期:2012-05-15 15:24:112012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23
7#
发表于 2006-9-25 16:06 | 只看该作者
select 记录号码, 录入时间, count(*) from table group by 记录号码, 录入时间 having count(*) >= 2
这样不行么?不要学了分析函数就忘了group by 的having 哦

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44奥运会纪念徽章:马术
日期:2008-08-07 13:19:27奥运会纪念徽章:沙滩排球
日期:2008-08-13 08:47:462010年世界杯参赛球队:巴西
日期:2010-02-12 11:48:16ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31
8#
发表于 2006-9-26 18:29 | 只看该作者
楼上的鸟儿:
  再仔细看看问题~

使用道具 举报

回复
论坛徽章:
0
9#
发表于 2006-9-27 11:13 | 只看该作者
青鸟,你的语句有问题噢!

使用道具 举报

回复
论坛徽章:
0
10#
 楼主| 发表于 2006-9-27 20:21 | 只看该作者
7楼语句不能实现。

使用道具 举报

回复

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

本版积分规则 发表回复

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