sql查询m时间内,出现频度n以上的记录。例如:表中记录日期与天气,查询3天内出现2天雨以上的日期起期。

raymonshi 2011-10-19 04:40:38
hello!
遇到个疑难问题,想不到好办法解决。不想用写存储过程,去遍历数据库,请教大家来帮忙看看。
sql查询m时间内,出现频度n以上的记录。例如:表中记录日期与天气,查询3天内出现2天雨以上的日期起期。
...全文
190 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
raymonshi 2011-10-20
  • 打赏
  • 举报
回复
hello,xiaobn.
range函数的用法,能讲一下吗?
xiaobn_cn 2011-10-20
  • 打赏
  • 举报
回复
应当使用窗口函数,但是不应当使用between,而应当使用range才对。除非保证数据中每天都有1条记录,并且每天都只能有1条记录,时between才会得到正确的结果。
raymonshi 2011-10-20
  • 打赏
  • 举报
回复
拜谢xiaobn,
讲的很详细,受教了。
xiaobn_cn 2011-10-20
  • 打赏
  • 举报
回复
一般来说range都是用于数值型字段的分区,你这里的datetime我没有用过,不是很清楚能否使用这种方式,如果不支持时间类型,你可以将时间与某个固定时间点进行差值计算,然后再使用得到的差值进行分区。
xiaobn_cn 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hebeishimeng 的回复:]
hello,xiaobn.
range函数的用法,能讲一下吗?
[/Quote]

sum() over(),结构的写法中,over是sum函数的开窗函数,sum是按照over中指定的分区进行统计的。
over(order by makedate rows between 0 preceding and 2 following)
上面的开窗函数,是按照makedate进行排序,分区范围是以当前行为基准的,前0行(0 preceding )到后2行(2 following)的数据,这里是按行号进行的分区。
按你的需求应当是按照值进行分区,那么就要更换一个关键词,把rows换成range,函数如下:
over(order by makedate range between 0 preceding and 2 following)
更改后的函数是按照当前行的makedate的值进行分区,分区条件是从当前记录相等值的记录到大于两天的记录。
forgetsam 2011-10-19
  • 打赏
  • 举报
回复
rows :窗口单位按行取

0 preceding 按照排序向前取0行 相当于currentrow

2 following 按照排序向后取2行

所以每行的窗口取到了本行+后两行,用decode计算出这三行几天有雨
raymonshi 2011-10-19
  • 打赏
  • 举报
回复
thanks to懒猫,
能详细解释一下吗?还没有用过窗口函数。preceding、following,用在这里是什么意思。
forgetsam 2011-10-19
  • 打赏
  • 举报
回复
少了个参数
select makedate from 
(select makedate,
sum(decode(weather,'雨',1,0))
over(order by makedate rows between 0 preceding and 2 following) dd
from TA) where dd>=2
forgetsam 2011-10-19
  • 打赏
  • 举报
回复
窗口函数
select makedate from 
(select makedate,
sum(decode('雨',1,0))
over(order by makedate rows between 0 preceding and 2 following) dd
from TA) where dd>=2
raymonshi 2011-10-19
  • 打赏
  • 举报
回复
表结构如举例中所说,表TA,日期字段makedate,天气字段weather.
内容如:
2011-10-1 ,晴;
2011-10-2 ,雨;
2011-10-3 ,晴;
2011-10-4 ,雨
论坛功能:
(1)支持 Access 、MS SQL SERVER、ORACLE、MYSQL 数据库
(2)论坛的共享数据数据采用服务器缓存机制,极大的减少访问数据库的次数,从而web服务器的性能。系统速度快,占用的系统资源极少。
(3)用户分为几个等级:游客、会员、帮主、总帮主、系统管理员。不同等级的用户有严格的权限区别。
(4)可以限制论坛看贴限制,只有设定的等级以上的用户才能看贴。
(5)可以限制论坛发贴限制,只有设定的等级以上的用户才能发贴。
(6)可以限制论坛跟贴限制,只有设定的等级以上的用户才能跟贴。
(7)可以增加、删除、修改论坛。
(8)可以论坛合并,把两个论坛的帖子合并为一个。
(9)可以单个、批量移动帖子。
(10)可以单个、批量删除帖子。
(11)论坛首页可以显示论坛的最新帖子及最新精华帖子。
(12)可以发投票贴,投票可以设置投票期限,单/多选投票设置。
(13)发贴跟贴可以带附件,附件的类型可以设置。
(14)发贴可以威望限制,只有达到该威望的用户可以看贴。
(15)发贴可以回帖限制,回帖才可以看贴。
(16)发贴可以贴数限制,只有发了相当的帖子数量的,才可以看贴。
(17)发贴可以金钱限制,只有付了相当的金钱才可以看贴。
(18)回帖人员可以在回帖时给搂主送分
(19)会员间可以赠送积分
(20)帖子可以被会员举报;管理人员可以审核举报的帖子。
(21)级别高的人员可以给低级别人员增加/降低威望。
(22)帮主以上人员可以总固顶、固顶、设置精华、加重、加锁帖子
(23)可以查找某人发的所有主贴、回帖;查找主题包含某字符串的所有帖子。
(24)可以清理长时间没人访问的论坛的所有老帖子。
(25)可以显示论坛所有在线人员的详细列表
(26)可以开放/关闭用户注册
(27)可以批量删除选定条件的用户
(28)可以批量给选定条件的用户发邮件
(29)可以批量给选定条件的用户发短信息
(30)可以批量导出选定条件的用户的邮件地址
(31)可以批量给选定条件的用户发工资或扣工资
(32)用户间可以发送短信息
(33)管理员可以查看删除所有短信息
(34)可以开放/关闭网站
(35)可以开放/关闭论坛
(36)可以设置首页的弹窗公告
(37)可以记录用户的威望操作记录,以备查看
(38)可以选择论坛的界面设置;每人登录用户也可以选择自己喜欢的界面设置。
(39)可以设置在线人员统计时间长度
(40)可以设置在线人员列表是否显示游客
(41)可以设置最大在线人数限制。
(42)可以设置同一个 IP 的机器的刷新频度,以防止用户恶意刷屏。
(43)可以限制同一个 IP 的机器注册时间间隔,以防止用户恶意注册会员。
(44)可以设置是否允许上传附件
(45)可以设置是否显示页面执行时间
(46)用户可以上传头像
(47)可以设置帖子禁止的词汇,该些词汇显示不会在网页中显示出来。
(48)可以通过CDONTS或JMAIL发送邮件
(49)可以在线备份和还原
(50)可以设置总页顶、页顶、页底、总页底、页左、页左浮动、页右浮动、全页浮动等的广告设置
(51)可以进行图片、文字友情连接设置
(52)可以限制过客浏览论坛帖子,也就是只有注册用户才能打开论坛。
(53)论坛积分设置,包括发贴、回帖、总固顶、固顶、精华、删主贴、删回帖等的积分设置
(54)楼主可以根据跟贴数量获得积分奖励
(55)发贴可以开放/关闭HTML, 开放/关闭KQJ代码。KQJ代码是一些设置好的标签。
(56)可以设定注册用户初始的积分。
(57)推荐新的注册用户可以得到积分奖励。
(58)限制用户一天内上传的附件数量。
(59)允许用户开设自己的论坛栏目。
(60)允许设置某个论坛的贵宾及不受欢迎用户。
(61)增加子论坛功能
(62)楼主可以开设赏分帖。即楼主根据他人的回帖情况,把预定的赏金分发回帖者。
(63)用户可以自定义论坛主题帖子的排序情况:按回帖时间排序、按发帖时间排序。
(64)用户发帖的IP情况可以被记载。



4、论坛安装步骤
(1)下载论坛代码,解压缩所有文件。


(2)数据库配置:
1)Access 数据库:
如果需要重命名数据库文件名称,数据库文件为 db/play.asp,你可以修改该数据库文件名称,但是必须也同时修改配置文件 setup.asp 中的对应的数据库库类型及连接参数。
2)MS SQL Server 数据库:
a)执行数据库脚本文件 KQJDB.sql ,完成数据库的安装
b)配置文件 setup.asp:对应的数据库库类型及连接参数
3)ORACLE 数据库:
a)执行数据库脚本文件 KQJDB_ORACLE.sql ,完成数据库的安装
b)配置文件 setup.asp:对应的数据库库类型及连接参数
4)MYSQL 数据库:
a)执行数据库脚本文件 KQJDB.sql ,完成数据库的安装
b)在web 服务器安装 my odbc 驱动程序
c)配置文件 setup.asp:对应的数据库库类型及连接参数


(3)在线备份配置:如果你要使用在线备份功能,系统需要密码校验,该密码设定于文件 setupbackup.asp 中


(4)上传多有的文件到你的web服务器,以系统管理员登录系统配置。初始的系统管理员用户名:admin 密码: admin。
(1)支持 Access 、MS SQL SERVER、ORACLE、MYSQL 数据库
(2)支持IE、Netscape、Opera等浏览器访问论坛
(3)支持论坛的共享数据数据在服务器缓存,极大提高web服务器的性能。
(4)支持无限级子论坛
(5)支持指定级别的用户开设个性化论坛。
(6)支持非法字符过滤
(7)支持发贴跟贴带多个附件,附件的类型可以指定。
(8)帖子可以被会员举报;管理人员可以审核被举报的帖子。
(9)论坛可以设置为:需管理员审核后,会员所发贴才可被其他会员查看。
(10)支持投票贴,投票可以进行投票期限、单/多选等设置。
(11)支持发赏分帖:楼主根据回帖情况,把预定的赏金分发给回帖者。
(12)回帖人员可以在回帖时给楼主赠分,奖励楼主。
(13)支持帖子可视化编辑
(14)用户分为几个等级:游客、会员、帮主、总帮主、系统管理员。不同等级的用户有严格的权限区别。
(15)可以限制论坛看贴限制,只有设定的等级以上的用户才能看贴。
(16)可以限制论坛发贴限制,只有设定的等级以上的用户才能发贴。
(17)可以限制论坛跟贴限制,只有设定的等级以上的用户才能跟贴。
(18)可以增加、删除、修改论坛。
(19)可以论坛合并,把两个论坛的帖子合并为一个。
(20)可以单个、批量移动帖子。
(21)可以单个、批量删除帖子。
(22)帮主以上人员可以总固顶、固顶、设置精华、加重、加锁帖子
(23)可以查找某人发的所有主贴、回帖;查找主题包含某字符串的所有帖子。
(24)可以清理长时间没人访问的论坛的所有老帖子。
(25)可以显示论坛所有在线人员的详细列表
(26)可以开放/关闭用户注册
(27)可以批量删除选定条件的用户
(28)可以批量给选定条件的用户发邮件
(29)可以批量给选定条件的用户发短信息
(30)可以批量导出选定条件的用户的邮件地址
(31)可以批量给选定条件的用户发工资或扣工资
(32)用户间可以发送短信息
(33)管理员可以查看删除所有短信息
(34)用户可以自定义论坛主题帖子的排序情况:按回帖时间排序、按发帖时间排序。
(35)可以开放/关闭论坛
(36)可以设置首页的弹窗公告
(37)可以记录用户的威望操作记录,以备查看
(38)可以选择论坛的界面设置;每人登录用户也可以选择自己喜欢的界面设置。
(39)可以设置在线人员统计时间长度
(40)可以设置在线人员列表是否显示游客
(41)可以设置最大在线人数限制。
(42)可以设置同一个 IP 的机器的刷新频度,以防止用户恶意刷屏。
(43)可以限制同一个 IP 的机器注册时间间隔,以防止用户恶意注册会员。
(44)可以设置是否允许上传附件
(45)可以设置是否显示页面执行时间
(46)用户可以上传头像
(47)允许设置某个论坛的贵宾及不受欢迎用户。
(48)可以通过CDONTS或JMAIL发送邮件
(49)可以在线备份和还原
(50)可以设置总页顶、页顶、页底、总页底、页左、页左浮动、页右浮动、全页浮动等的广告设置
(51)可以进行图片、文字友情连接设置
(52)可以限制过客浏览论坛帖子,也就是只有注册用户才能打开论坛。
(53)论坛积分设置,包括发贴、回帖、总固顶、固顶、精华、删主贴、删回帖等的积分设置
(54)楼主可以根据跟贴数量获得积分奖励
(55)发贴可以开放/关闭HTML, 开放/关闭KQJ代码。KQJ代码是一些设置好的标签。
(56)可以设定注册用户初始的积分。
(57)推荐新的注册用户可以得到积分奖励。
(58)限制用户一天内上传的附件数量。
(59)用户发帖的IP情况可以被记载。
(60)发贴可以威望限制,只有达到该威望的用户可以看贴。
(61)发贴可以回帖限制,回帖才可以看贴。
(62)发贴可以贴数限制,只有发了相当的帖子数量的,才可以看贴。
(63)发贴可以金钱限制,只有付了相当的金钱才可以看贴。
(64)级别高的人员可以给低级别人员增加/降低威望。



4、论坛安装步骤
(1)下载论坛代码,解压缩所有文件。


(2)数据库配置:
1)Access 数据库:
如果需要重命名数据库文件名称,数据库文件为 db/play.asp,你可以修改该数据库文件名称,但是必须也同时修改配置文件 setup.asp 中的对应的数据库库类型及连接参数。为了论坛安全考虑,建议修改数据库文件的名字,使他人难以知道你的数据库文件位于哪里。
2)MS SQL Server 数据库:
a)执行数据库脚本文件 KQJDB.sql ,完成数据库的安装
b)配置文件 setup.asp:对应的数据库库类型及连接参数
3)ORACLE 数据库:
a)执行数据库脚本文件 KQJDB_ORACLE.sql ,完成数据库的安装
b)配置文件 setup.asp:对应的数据库库类型及连接参数
4)MYSQL 数据库:
a)执行数据库脚本文件 KQJDB.sql ,完成数据库的安装
b)在web 服务器安装 my odbc 驱动程序
c)配置文件 setup.asp:对应的数据库库类型及连接参数


(3)在线备份配置:如果你要使用在线备份功能,系统需要密码校验,该密码设定于文件 setupbackup.asp 中


(4)上传多有的文件到你的web服务器,以系统管理员登录系统配置。初始的系统管理员用户名:admin 密码: admin。



中国论坛网推荐

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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