如何实现日排名,周排名,月排名???
一个下载的程序,有点击字段记录下载次数
要如何实现日点击数,周点击数,月点击数呢?
问题点数:50、回复次数:20Top
1 楼51one(今天你学习了吗?)回复于 2006-03-02 16:01:33 得分 10
月:
select top 10 * from [soft] where date>Now()-30 order by hits desc
周:
select top 10 * from [soft] where date>Now()-7 order by hits desc
日:
select top 10 * from [soft] where year(date)&month(date)&day(date)=year(date())&month(date())&day(date()) order by hits desc
Top
2 楼ksn520(泡菜.Net)回复于 2006-03-02 16:10:57 得分 0
哪来的date字段????
______________________________________________
我最讨厌两种人:
一是有种族歧视的;
二是黑人;
三是不识数的!Top
3 楼lymyx(明月)回复于 2006-03-02 16:24:39 得分 0
降序排列Top
4 楼lymyx(明月)回复于 2006-03-02 16:26:07 得分 0
靠点击量降序排列。
Top
5 楼lidaixiang(smartyufu)回复于 2006-03-02 16:29:12 得分 0
这要看您的设计是要相对当前日期的月还是绝对的月份。如果是绝对的月份,就取得当前月,如currentmon=month(),假定数据库中有发布日期之类的时间如issue-date作参照,再:
select * where issue-date=currentmon order by dianjilv desc
如果是相对月,就取得当前日期到天,再得到从上月的该天到当前月该天期间的记录就可以,思路就是这样的。Top
6 楼boyd1985(波伊德乐园->http://www.boyd.cn)回复于 2006-03-02 16:31:01 得分 0
SQL查询中可以用dateadd、datadiff、datapart等,Top
7 楼lidaixiang(smartyufu)回复于 2006-03-02 16:32:04 得分 10
日排名就简单了,直接取得当前日期,且点击率最高,就是select * where issue-date=#date()# order by dianjilv desc
周点击率,同样是把您界定的周表达出来,放到SQL语句中就可以了。Top
8 楼ksn520(泡菜.Net)回复于 2006-03-02 16:33:56 得分 0
可是只有一个点击数的字段,和发布时间的字段
如果是一年前发布的,怎么知道前一个月的点击数呢?
如果要加字段要加什么字段呢?
______________________________________________
我最讨厌两种人:
一是有种族歧视的;
二是黑人;
三是不识数的!Top
9 楼hglwy(卡西莫多)回复于 2006-03-02 16:43:43 得分 0
你只要记录下 每个用户点击的时间和选项就可以了 剩下的就是 对数据做分析和统计了
记录点饥时间的字段T用DATETIME类型
然后就是对他进行处理了 日点击数 就是SELECT day(dd) d ,count(id) from b group by day(dd)
月点击就是SELECT month(dd) m ,count(titleid) from b group by month(dd)
周点际书麻烦点 思路是这样的你得先统计出来 得写一个函数取得第一个周日的日期 然后根据他用DATEDIFF函数来判断那些日期是一周的Top
10 楼ksn520(泡菜.Net)回复于 2006-03-02 16:52:43 得分 0
是不是我今天晕了没看懂呢?
记录点饥时间的字段T用DATETIME类型
完全没听懂这句
加个点击时间?如果是每天点击100次就更新100次,那记录的是最后一次点击时间么?
______________________________________________
我最讨厌两种人:
一是有种族歧视的;
二是黑人;
三是不识数的!Top
11 楼dh20156(风之石)回复于 2006-03-02 17:08:58 得分 10
你这样设计数据表:
ccid(自增ID) software(点击下载的软件) ccount(当天点击次数) cdt(点击日期)
1 ACDSee3.1 10 2006-3-1
这样就好统计了。Top
12 楼ksn520(泡菜.Net)回复于 2006-03-02 17:23:43 得分 0
to dh20156(风之石)
这样是好统计了,那如果周和月,不是又要再加几个字段了,唉
______________________________________________
我最讨厌两种人:
一是有种族歧视的;
二是黑人;
三是不识数的!Top
13 楼dh20156(风之石)回复于 2006-03-02 17:30:30 得分 0
周和月不需要再加字段了啊,全用cdt字段,用日期函数处理嘛。Top
14 楼ksn520(泡菜.Net)回复于 2006-03-02 17:37:49 得分 0
cdt记录的日期是,最后一次点击的还是最早一次?
______________________________________________
我最讨厌两种人:
一是有种族歧视的;
二是黑人;
三是不识数的!Top
15 楼dh20156(风之石)回复于 2006-03-02 17:52:17 得分 0
每天点击都会有一条记录产生。Top
16 楼ksn520(泡菜.Net)回复于 2006-03-02 17:58:31 得分 0
晕,那哪受得了啊,还不如写个当月点击的字段,每次点击加1,过了自然月就清空
access的数据库哦
______________________________________________
我最讨厌两种人:
一是有种族歧视的;
二是黑人;
三是不识数的!Top
17 楼netcha(只喝茶)回复于 2006-03-03 09:42:49 得分 10
不难。分三个字段,当天,本周,本月,累计写进去就行了。这样数据量不大。如果要精确统计,就要每次点击写一条了Top
18 楼hglwy(卡西莫多)回复于 2006-03-03 10:28:48 得分 0
建议楼主 找个调查的程序看看
www.kt250.com 首页上的 “东西大排挡”是我原来写的 你可以看一下Top
19 楼DigData(C'est la Vie)回复于 2006-03-03 12:35:44 得分 0
你的需求里最小的时间粒度是天,那就得每天存一条记录,至于周和月,可以取一周/一月的点数sum起来排序。Top
20 楼antiking(生活就象拉大便有时顺畅有时不顺畅.)回复于 2006-03-03 13:26:33 得分 10
我想你的表设计的不合理.所以不可以统计.Top




