如何获取每月的数据总和,最大值,最小值,最后那天值?

SkyeyGarden 2007-11-30 04:22:34
条件1,很多年的数据,对每月或者每星期做统计。
条件2,都是对单列数据统计,按月或星期。
...全文
270 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Limpire 2007-12-02
  • 打赏
  • 举报
回复
接分
netcup 2007-12-01
  • 打赏
  • 举报
回复
用EXCEL的数据透视表更简单.呵呵
newqm 2007-12-01
  • 打赏
  • 举报
回复
帮顶
pt1314917 2007-11-30
  • 打赏
  • 举报
回复
顶了。最近很少来CSDN转悠了。。
areswang 2007-11-30
  • 打赏
  • 举报
回复
我的积极最近越来越高了。楼主的语句觉得该优化一下。
SkyeyGarden 2007-11-30
  • 打赏
  • 举报
回复
谢谢大家的关注。
SkyeyGarden 2007-11-30
  • 打赏
  • 举报
回复
我自己做出来了。

month:
SELECT STR(YEAR(DateTime))+STR(MONTH(DateTime)) AS date, MIN(DateTime) AS MinDateTime,

MAX(DateTime) AS MaxDateTime, SUM(Volume)
AS Volume, MAX(HighPrice) AS highprice, MIN(LowPrice) AS lowprice
FROM FinancialNEW
GROUP BY STR(YEAR(DateTime)) + STR(MONTH(DateTime))
ORDER BY date

week:
SELECT STR(YEAR(DateTime)) + STR(DATEPART(wk, DateTime)) AS date, MIN(DateTime) AS

MinDateTime, MAX(DateTime) AS MaxDateTime, SUM(Volume)
AS Volume, MAX(HighPrice) AS highprice, MIN(LowPrice) AS lowprice
FROM FinancialNEW
GROUP BY STR(YEAR(DateTime)) + STR(DATEPART(wk, DateTime))
ORDER BY date
kk19840210 2007-11-30
  • 打赏
  • 举报
回复
do熊 升了星星后积极性减少了啊
fa_ge 2007-11-30
  • 打赏
  • 举报
回复
给一个别人的例子给你吧



create table t(ip varchar(30),[time] varchar(30),[address] varchar(50))
insert into t
select '192.168.1.3','20061028140125','http://localhost/' union all
select '192.168.1.3','20061028140125','http://localhost/' union all
select '192.168.1.3','20061028140125','http://localhost/' union all
select '192.168.1.3','20061028140125','http://localhost/' union all
select '192.168.1.3','20061028140125','http://localhost/' union all
select '192.168.1.3','20061120140125','http://localhost/' union all
select '192.168.1.3','20061201140125','http://localhost/' union all
select '192.168.1.3','20061201140125','http://localhost/' union all
select '192.168.1.3','20061201140125','http://localhost/' union all
select '192.168.1.3','20061201140125','http://localhost/'


select
[每年]=(select top 1 count(*) as total from t group by left([time],8) order by total desc),
[每周]=(select top 1 count(*) as total from t group by datepart(week,left([time],8)) order by total desc),
[每月]=(select top 1 count(*) as total from t group by left([time],6) order by total desc),
[当月]=(select count(*) from t where datepart(week,left([time],8))=datepart(week,getdate())),
[当周]=(select count(*) from t where datepart(week,left([time],8))=datepart(week,getdate())-1)


fa_ge 2007-11-30
  • 打赏
  • 举报
回复
do熊兄弟,这几天见你很少来了
kk19840210 2007-11-30
  • 打赏
  • 举报
回复
对每月或者每星期做统计

对每月统计
group by convert(varchar(7),convert(datetime,'2007-10-20'),120)

对每星期做统计
group by dateadd(day,-datepart(weekday,convert(datetime,时间)+@@datefirst-1)+1,convert(datetime,时间))
jinjazz 2007-11-30
  • 打赏
  • 举报
回复
sum,min,max,group by
dobear_0922 2007-11-30
  • 打赏
  • 举报
回复
表结构&数据贴上来看看
fa_ge 2007-11-30
  • 打赏
  • 举报
回复
有没有数据啊

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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