请求高手指教一个数据批量处理问题

dvp_168 2007-12-21 10:09:33
例如:有网友留言表:ly
ID 店铺ID 用户ID 人均消费
1 1001 702 50
2 1001 703 70
3 1001 704 65
4 1002 702 120
5 1002 705 320
6 1003 702 15

饭店表:shop
ID 电话 地址 等等。。。。

有一个list.jsp页,用来显示饭店信息的 jsp中有几个超链接:人均消费30元 30-50元 等等。。
点30-50元,在这页里显示所有符合条件的饭店列表(如下)
饭店名:
地址:
电话:
人均消费:
等等...:
但人均消费是算出来的。(如:人均消费=所有网友提供的消费总额/人数)
例如:店铺1001的人均消费=(50+70+65)/3
我用的方法是先把所有饭店信息用list放起来。放到request里.然后写一个方法计算所有饭店的人均消费。
再计算数据,如果人均消费符合30-50元。就显示饭店信息。
但是这样查得好慢好慢。我是个新手。

请问有什么好的方法来实现这个功能?
我还想到在饭店表里再加一列(人均消费)。定期将留言表里的人均消费计算一下,对饭店表(人均消费字段)更新。
以后直接查这个字段。但想想这样也还是比较慢。
请高手指点一下最有效的方法。
我用的是:struts+hibernate+spring
...全文
40 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
paradise7th 2007-12-26
  • 打赏
  • 举报
回复
这不是一个SQL问题吗?写一个查询人均消费的视图就行了

select 店铺ID,avg(人均消费) from 留言表 group by 店铺ID

leafsax 2007-12-21
  • 打赏
  • 举报
回复
平均数=(平均数*个数+新的值)/(个数+1)
同时个数增加,所以只要记一个当前平均数和一个个数就够了
可以增量计算,每次计算时间从O(n)变到O(1)
dvp_168 2007-12-21
  • 打赏
  • 举报
回复
顶下

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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