我有一个表单RT,相对其中的D_PV字段求每60个数值的平均值,有人告诉我用select AVG(price)可以实现,请问如何具体实现呢?可以以时间方式查询的,有一个时间的字段D_TM,拜托各位了!

解决方案 »

  1.   

    此表单每隔1秒添加一条记录,1分钟我要求一次平均值,D_TM的形式是时分秒型的.
      

  2.   

    SELECT AVG(D_PV) FROM [tablename] WHERE ID IN (SELECT TOP 60 ID FROM [tablename] ORDER BY D_TM DESC)
      

  3.   

    SELECT AVG(D_PV) FROM [tablename] WHERE ID IN (SELECT TOP 60 ID FROM 
    [tablename] ORDER BY D_TM DESC)
    这个没问题。顶!
      

  4.   

    把求出来的平均值放到AV表单里面呢?
    SELECT AVG(D_PV) FROM [tablename(这是RT表单吧?)] WHERE ID IN (SELECT TOP 60 ID (选择最上面的60条记录吗?) FROM [tablename(这是那个表单呢?)] ORDER BY D_TM DESC)
      

  5.   

    SELECT AVG(D_PV) FROM [tablename(这是RT表单吧?)] WHERE ID IN (SELECT TOP 60 ID (选择最上面的60条记录吗?)FROM [tablename(这是那个表单呢?)] ORDER BY D_TM DESC)1。是RT表
    2。你每s增加一条记录,每次求最上面的60个记录,正好是1min的平均值
    3。FROM [tablename(这是那个表单呢?)] ORDER BY D_TM DESC)这个tablename仍然是RT表单SELECT AVG(D_PV) FROM [RT] into AV WHERE ID IN (SELECT TOP 60 ID FROM [RT] ORDER BY D_TM DESC)把选择的值插入AV表,AV表结构我不清楚,所以没有办法帮你写,大概的意思就是这样,你用一个存储过程可以解决
      

  6.   

    AV的结构和RT一样,只是1分钟写一条记录,RT是1秒钟写一次,
    那么SELECT AVG(D_PV) FROM [RT] into AV WHERE ID IN (SELECT TOP 60 ID FROM [RT] ORDER BY D_TM DESC)执行之后,是否还要对表单的各字段赋值呢?还是直接Update就可以了?RT结构:  D_TM   D_PV  ID
    AV结构:  D_TM   D_PV  ID