实现日、周、月排行统计 sql
在如今很多系统中,都需要进行日、周、月排行统计,但是在网上寻找 了一番,发现很多都是相对的周、月排行,即周排行则用当前时间减去7天。这样我个人认为并不恰当。如月排行中,假设今天是4月22日,则从3月22日至4月22日之间都可以算成月排行内,这样的话与我们的月排行不尽相同,我认为月排行应该指当月的排行。
概括一下,即两种情况:当前日期往前推一周或者一个月(暂且描述为“相对排行”),当前日期所在周或 者所在月(暂且描述为“绝对排行”)。
为了好描述和分析,举例说明。示例数据库如下:
说明:
表名:T_Visit
当前日期:2009-4-22
表中数据:如下
当前日期为星期 几(@day):3
相对排行实现办法:
日排行:
select top 20 ID, userIp, Date from T_Visit where (dbo.T_Visit.Date >=CONVERT(nvarchar(10), getdate(), 21)) AND (dbo.T_Visit.Date <= CONVERT(nvarchar(10),dateadd(day,1,getdate()), 21))
周排行:
select top 20 ID, userIp, Date from T_Visit where dbo.T_Visit.Date > getdate()-7
月排行:
select top 20 ID, userIp, Date from T_Visit where dbo.T_Visit.Date > getdate()-30
绝对排行实现办法:
日排行:
select top 20 ID, userIp, Date from T_Visit where (dbo.T_Visit.Date >=CONVERT(nvarchar(10), getdate(), 21)) AND (dbo.T_Visit.Date <= CONVERT(nvarchar(10),dateadd(day,1,getdate()), 21))
结果如下图:
周排行:
declare @day int
set @day=3
select top 20 ID, userIp, Date from T_Visit where (dbo.T_Visit.Date >=CONVERT(nvarchar(10),dateadd(day,-@day,getdate()),21)) AND(dbo.T_Visit.Date<=CONVERT(nvarchar(10),dateadd(day,(7-@day),getdate()), 21))
结果如下图:
月排行:
Select top 20 ID, userIp, Date from T_Visit where year(Date)=year(getdate()) andmonth(date)=month(getdate())
结果如下图:
(注:本示例在Sql Server 2005环境中测试)
实现日、周、月排行统计 sql的更多相关文章
- Flex自定义组件开发之日周月日期选择日历控件
原文:Flex自定义组件开发之日周月日期选择日历控件 使用过DateField的我们都知道,DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标.当用户在控件边框内的 ...
- pg按日,周,月进行数据统计
pg数据库按周,月统计数据 SELECT date_trunc('WEEK', insert_time) as insertDate, SUM(data_increment) as dataTotal ...
- mysql按日/周/月统计
一.mysql按日统计 ) count ' and start_time > '2017-06-28' group by days; 二.mysql按周统计 ) ' group by weeks ...
- MySql查询日周月
常用计算日期的函数 日 date(日期) = CURDATE() 自然周 YEARWEEK(date_format(日期,'%Y-%m-%d') , 1) = YEARWEEK(now() , 1) ...
- 4月1日->-4月15日 2周阶段性计划
4月1日->4月14日 ST表 树状数组 LCA 一周的时间,力求掌握这三个知识点并各刷五道题左右. 树状数组 ST表 LCA 然而:进展总比计划快(......什么鬼) 树状数组刷了5题,ST ...
- C# 根据天、周、月汇总统计生成统计报表
先看核心代码: public List<DataEntity> SearchShopSalesReport(DateTimeOffset? dateFrom, DateTimeOffset ...
- sql按月统计数量和按月累加统计数量
1.简单的,按月统计数量 SELECT CREATE_DATE, DATE_FORMAT(CREATE_DATE, '%Y-%m') AS month , COUNT(*) AS sum FROM p ...
- 西安Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 西安Uber优步司机奖励政策(1月11日~1月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
随机推荐
- charsets - 程序员对字符集和国际化的观点
描述 Linux 是一个国际性的操作系统.它的各种各样实用程序和设备驱动程序 (包括控制台驱动程序 ) 支持多种语言的字符集,包括带有附加符号的拉丁字母表字符,重音符,连字(字母结合), 和全部非拉丁 ...
- python连接mysql的操作
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- 开放API接口
[开放API]——知乎.博客园等开放API接口(更新ing) Cnodejs.org: https://cnodejs.org/api/ 和风天气: http://docs.heweather.c ...
- JavaSE-17 泛型
学习要点 泛型接口 泛型类 泛型方法 多参数泛型类 泛型类的继承 泛型的定义 允许在定义类.接口.方法时使用类型形参,类型形参将会在声明变量.创建对象或者调用方法时候动态指定. 泛型接口 1 定义 ...
- JVM优化(下)
14.Tomcat8优化之G1牢记收集器的测试结果以及小结: jmeter测试:(1)tomcat未做任何优化:(2)禁用AJP:(3)启用连接池:(4)设置最大线程数1000,初始线程数200:(5 ...
- Linux下启动tomcat报java.lang.OutOfMemoryError: PermGen space
一.错误信息 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke ...
- 一次ORA-01555问题分析,及SQL优化。
前言 客户说: 我在数据库上继续运行昨日的脚本,但发现有个子过程在运行10个小时后报错: 烦请协助看看... 错误码是:ORA-01555: snapshot too old: rollback se ...
- Go:面向"对象"
一.封装 封装的实现步骤: 将结构体.字段的首字母小写(不能被导出): 给结构体所在的包提供一个工厂模式的函数,首字母大写.类似一个构造函数: 提供一个首字母大写的方法,由于获取结构体属性的值. 二. ...
- ruby cloud9部署到heroku
Cloud9网址:https://c9.io/ 使用github账号登陆,如果没有,现在github(https://github.com/)上注册一个用户,在进行登陆.
- vue-router 根据路由动态添加目录 控制目录权限
<template> <el-row class="el-menu" > <el-menu router :default-active='$rout ...