sql查询语句怎么写(50分)

  • 主题发起人 thgerman
  • 开始时间
T

thgerman

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一张表,表内有一千条数据,我想完成以下工作
1.每十个数据为一组,算出每组的平均值(共100组)
2.每二十个数据为一组,算出每组的平均值(共50组)
3.每五十个数据为一组,算出每组的平均值(共20组)
这样的sql语句怎么写(分三次完成任务,每次完成一项)
 
你的“组”是什么意思呢?
是按某个字段排序,然后顺序取10个或20,50个吗?
为什么不考虑用BROUP BY呢?

 
《不可能完成的任务》
 
是按某个字段排序,然后顺序取10个或20,50个

broup by?是不是打错了是group by

这个任务可以完成吗?
 
用存储过程实现用变量计数
每10、20、50 各纪录求一次平均数并请空相应中间变量
 
yaya8163能说得再详细一点或给出源代码吗?
(只要实现以上三种情况的一种就可以了,其他两种道理一样的)
 
用游标进行计算!
 
存储过程可以按照其他高级语言的方式来处理数据库记录。
以游标的方式(以排序)打开数据表,从开始向后遍历,对第一种要求而言,每累计10
个记录就进行取平均值操作。遍历结束后关闭游标,得到结果。
 
不用游标可以实现吗?
 
把纪录全部读到DataSet的缓存内,然后你像怎么统计就怎么统计,何必一定要SQL呢
好比家里有辆车,你非得坐牛
 
chillkwanjane:你说得很对,但这些数据我只做分析用,分析完后就没用了,所以不想编程
^u^
没有更好的办法的话,只能编程了:(
 
--假如表没ID的话
create table #tmp(bh int identity,yourfield numeric(8,2))

insert into #tmp(yourfield)select yourfield from yourtable

select avg(yourfield) avgfield from #tmp group by bh%10
select avg(yourfield) avgfield from #tmp group by bh%20
select avg(yourfield) avgfield from #tmp group by bh%50

drop table #tmp
 
多人接受答案了。
 

Similar threads

回复
0
查看
750
不得闲
回复
0
查看
920
不得闲
S
回复
0
查看
987
SUNSTONE的Delphi笔记
S
顶部