请问使用 SQL 能否实现以下要求?

2014-03-14 22:15:14 +08:00
 coolzjy
表中储存的数据是销售数据,主要字段有“交易单价”“交易数量”“交易时间”

需要按照下面的要求提取数据:
1、按照交易时间3分钟的间隔进行分组,求每组的成交额和成交量
2、按照交易时间等分为30组(每组时间跨度相等),求每组的成交额和成交量
3、将每天的交易量等分为30组,求每组的成交额和成交量

三个要求的主要难点在于分组。需要注意的是,每天的交易是集中在某个时段进行,而不是分布在全天,所以第二条要求不能通过人工划分时间间隔来实现,需要根据当天的第一条数据的时间和最后一条数据的时间动态划分。

SQL中如何实现上述要求呢?
2698 次点击
所在节点    问与答
7 条回复
zzNucker
2014-03-14 23:28:43 +08:00
太麻烦了,不适合用SQL解决。
Narcissu5
2014-03-14 23:39:53 +08:00
同学你起码要说明哪种数据库吧,Sql Server和Oracle应该是可以的,大不了写存储过程嘛
thinkif
2014-03-15 09:10:22 +08:00
SQL能实现, 只不过不同的数据库具体写法不一样
coolzjy
2014-03-15 09:30:32 +08:00
@zzNucker 我也是这么考虑,有没有更合适的软件推荐
@Narcissu5
@thinkif
数据库是SQL Server 第三条有点头绪,可以取总条数然后等分,时间间隔的怎么取求指导
thinkif
2014-03-15 12:46:52 +08:00
@coolzjy
中午写了个小例子, 为了构造数据方便, 用的是我们公司今天的考勤数据库中的信息
根据签到时间将七百多人的签到记录动态分成30个时间段, 统计每段的签到人数, 类似你要求的成交量, 至于成交额就是换个聚合函数的事儿, 省略了...

https://gist.github.com/9561939.git
thinkif
2014-03-15 12:53:16 +08:00
coolzjy
2014-03-15 13:51:27 +08:00
@thinkif 生成一个时间区间的表使用 between 的条件进行连接查询,excellent idea!
本来一直在考虑使用循环

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/104367

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX