-
sql 每三天统计0
有张卡,每消费一次会有一条消费数据,消费了好多钱。统计消费情况,根据客户给定日期统计,要求没三天统计一次:如给定日期为2012-10-01至2012-10-09,那么2012-10-01~2012-10-03合计,2012-10-02~-2012-04合计,。。。直到2012-10-07~2012-10-09
现目前用的方案是 tr_date between 2012-10-01 and 2012-10-03 or between 2012-10-02 and 2012-10-04...
但是如果给定的日期跨度很大,这个sql就长的坑爹了2012年10月14日 13:34
6个答案 按时间排序 按投票排序
-
建议时间以number型保存,这样非常好做统计,类似如下语句:
SELECT DATE_NUM/3600/1000 DAY, SUM(MONEY) FROM DATA_TALBE GROUP BY DATE_NUM/3600
具体就根据自己的需求来定吧。拼SQL语句太长了会很慢2013年3月20日 10:54
-
列如:统计一天的SQL是 select sum(money),date from table grou by date
select sum(money),date from (
select sum(money) money,date from table where date>=a and date<b grou by date
union all
select sum(money) money,date-1 date from where date>=a and date<b table grou by date
union all
select sum(money) money,date-2 date from where date>=a and date<b table grou by date
) where date >= a
这样就可以计算出来了
如果不是三天就多几个union all就是了这个速度还是挺快的2012年10月15日 12:32
-
根据你的
【2012-10-01~2012-10-03合计,2012-10-02~-2012-04合计】
那么这个用行触发器也是可以考虑的,创建个临时表,在每添加一条消费记录的同时像临时表(temp1结构: 统计开始时间,结束时间,统计消费的钱数)
获取当前插入的金额,日期,查询 插入时间的的钱一天金额,和前2天的金额 做一个sum
然后把这个值 插入到temp表中
具体插入规则:
统计结束时间也就是 在插入消费记录的日期,
统计开始时间也就是 插入消费记录的日期-3天,
统计消费的金额也就是sum
然后需要查询某一段时间范围的记录就直接:
select * from temp1 where 统计开始时间 between 时间1 and 时间2
group by 统计开始时间2012年10月14日 17:35
-
提供个思路:
sql中有一个 case when 入手,不过这样sql会很长
这个可以做个存储过程,或者在java中拼sql,传入查询
select '2012-10-01-2012-10-03' as '2012-10-01',sum(case when 日期 between '2012-10-01' and '2012-10-03' then 积分 else 0 end) as '积分' from #Score
union
select '2012-10-03-2012-10-06' as '2012-10-01',sum(case when 日期 between '2012-10-03' and '2012-10-06' then 积分 else 0 end) as '积分' from #Score
传入开始日期,结束日期 和 分割的天数 来计算
要动态创建selce *** union 的行数
2012年10月14日 14:23
相关推荐
连续三天登录的用户统计.sql
在统计每一天、一周或一个月的汇总时,可以结合日期函数和条件来实现。例如,使用BETWEEN运算符和日期函数DATE()、YEAR()、MONTH()、DAY()来筛选特定日期范围内的数据: ```sql SELECT COUNT(*), DATE(date_column) ...
### 21天迅速学会SQL(比较完整的SQL学习手册) #### 第一部分:SQL入门与基础知识 **标题**:21天迅速学会SQL(比较完整的SQL学习手册) **描述**:本手册旨在帮助初学者通过21天的学习周期,从基础到进阶掌握...
#### 第三天:表达式、条件语句与运算 - **表达式**:在SQL中,表达式可以用来计算数值或进行逻辑判断。 - **条件语句**:例如IF语句,在某些数据库中可以用来根据不同的条件执行不同的操作。 - **运算**:介绍了...
下面我们将通过一个 SQL 游标来逐行计算每一条记录的5日移动平均价和5日交易量加权移动平均价,并更新到相应的字段中。 1. **定义变量:** ```sql DECLARE @i INT = 1; -- 循环变量i DECLARE @j INT = 1; -- ...
#### 第三天:表达式、条件语句与运算 - **表达式**:SQL支持各种表达式,包括算术表达式、字符串表达式、比较表达式等。这些表达式可以用来进行数据处理和计算。 - **条件语句**:使用IF-THEN-ELSE语句可以在SQL中...
### SQL21天自学通.pdf 知识点详解 #### SQL基础入门概述 - **适用对象**:本书针对初学者,旨在通过系统的学习路径帮助读者掌握SQL的基本概念和实际操作能力。 - **学习周期**:全书规划为21天的学习周期,每天...
#### 第三天:表达式、条件语句与运算 - **表达式**:SQL中的表达式是用来计算值的公式,可以是数值、字符串或日期等。 - **条件语句**:如IF…ELSE,CASE WHEN…THEN等,用于根据不同的条件执行不同的操作。 - **...
### 三、SQL查询结果分析 执行上述SQL语句后,每条记录都将包含一个额外的 `ۼԤ` 字段,显示截至该时间点的累计预计值。例如,对于第一条记录,“2013-01-01”的累计预计值为300;对于第二条记录,“2013-02-01”...
#### 第三天:表达式、条件语句与运算 - **表达式**:介绍了SQL中的表达式的概念,包括算术表达式、字符串表达式、日期表达式等。 - **条件语句**:讲解了如何使用条件语句(如IF...THEN...ELSE)来执行基于特定条件...
### 21天学会SQL:核心知识点精析 #### 第一部分:SQL简介及发展历程 - **SQL简史**:SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言,最初由IBM的研究员Donald D. Chamberlin和Raymond F...
这条SQL语句将统计在BOSSWG和BASEDBA用户下的所有对象的统计信息,如果统计信息未被更新或超过14天未被更新的对象数量。 二、解决统计信息收集未开启的问题 在检查统计信息收集情况后,我们可能发现统计信息未被...
《SQL自学通+21精通SQL》是一套针对SQL初学者设计的全面教程,旨在帮助零基础的学习者在21天内快速掌握SQL的核心技能。SQL(Structured Query Language,结构化查询语言)是用于管理关系数据库的标准语言,无论你是...
例如,插入三个记录,每个记录代表一个IP地址在当前时间的访问,`AccessCount`设为1。 现在我们来探讨如何按照月份和小时进行分组统计: 1. **按月分组统计**: 当我们想根据年份和月份进行统计时,可以使用`...