请教一个统计问题

[复制链接]
查看11 | 回复9 | 2008-5-14 01:01:57 | 显示全部楼层 |阅读模式
请教一个问题,假设每天凌晨1点执行job,统计前一天的客户交易数据,和多少客户发生了交易,将这两个数据放到一个中间统计表中。
现在问题是从中间表查这个数据时,如果要累计两天的数据,交易数据累加没有问题,可是客户数累加就有问题了,因为这两天的可能有相同的客户做交易,这样就重复计算了,
请问大家有没有好的解决方案,谢谢!
回复

使用道具 举报

千问 | 2008-5-14 01:01:57 | 显示全部楼层
不知道用count(distinct 客户),count(*)可以不?
回复

使用道具 举报

千问 | 2008-5-14 01:01:57 | 显示全部楼层
那你只能在中间表里面存能标示客户的ID什么的,不然是没法统计的,统计只能对存在的进行,你的客户信息都没有怎么能算出总数啊
回复

使用道具 举报

千问 | 2008-5-14 01:01:57 | 显示全部楼层
分组函数中有没有将数据拿出来的?而不是计算结果。
譬如我想抓所有客户号作为一个集合对象返回,而不是count(distinct client_no))
回复

使用道具 举报

千问 | 2008-5-14 01:01:57 | 显示全部楼层
还是不明白lz的意思,能不能把你的表结构大体列一下,还有你要的数据是怎样的,这样会比较清楚一点
回复

使用道具 举报

千问 | 2008-5-14 01:01:57 | 显示全部楼层
原帖由 7854236 于 2008-9-2 12:08 发表
分组函数中有没有将数据拿出来的?而不是计算结果。
譬如我想抓所有客户号作为一个集合对象返回,而不是count(distinct client_no))

直接
select distinct client_no from temp
回复

使用道具 举报

千问 | 2008-5-14 01:01:57 | 显示全部楼层
原帖由 kisa99 于 2008-9-2 21:14 发表

直接
select distinct client_no from temp

这样应该可以满足LZ的要求了。
回复

使用道具 举报

千问 | 2008-5-14 01:01:57 | 显示全部楼层
楼主的意思是要把计算结果事先存在统计表中,以日为单位,到时候就不必访问原始数据了。
这种做法有个前提就是数据必须是可累计的(additive).
像我们系统有类似COUNT DISTINCT的需求,要7天、当月的数字,我不得不另开两个列来存放结果。
回复

使用道具 举报

千问 | 2008-5-14 01:01:57 | 显示全部楼层
原帖由 newkid 于 2008-9-2 21:51 发表
楼主的意思是要把计算结果事先存在统计表中,以日为单位,到时候就不必访问原始数据了。
这种做法有个前提就是数据必须是可累计的(additive).
像我们系统有类似COUNT DISTINCT的需求,要7天、当月的数字,我不得不另开两个列来存放结果。



支持你的zuofa
回复

使用道具 举报

千问 | 2008-5-14 01:01:57 | 显示全部楼层
http://www.pjwlhy.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行