【问题标题】:sql query for each day每天的sql查询
【发布时间】:2013-07-12 07:33:02
【问题描述】:

我有一个主表:

(  
time date,  
qty int  
)  

我想创建一个查询,因此我每天都会得到当天和之前所有天数的总和 所以对于这个数据

-----------------------    
time        | qty    
01/09/2009  | 3   
02/09/2009  | 8  
03/09/2009  | 2 
04/09/2009  | 5 

我明白了:

-----------------------    
time        | total    
01/09/2009  | 3   
02/09/2009  | 11  
03/09/2009  | 13 
04/09/2009  | 18 

提前致谢

【问题讨论】:

标签: mysql sql mariadb


【解决方案1】:

这应该会给你更快的结果

SELECT time
     , @tot_qty := @tot_qty+qty AS tot_qty
FROM Table1 
JOIN (SELECT @tot_qty := 0) d
order by time

SQL FIDDLE

【讨论】:

  • @SiavashM 请检查我的答案。我相信它会给你更快的结果。
  • 我检查过它工作正常,谢谢,但是如果我每天有多个记录怎么办?
  • @SiavashM 如果有多个记录,您需要使用 group by。给我一些虚拟记录,我会回复你。
  • paste.ubuntu.com/5867504 不知道格式是否正确,告诉我是否不正确
  • 为什么我不能在@Luv Luv 的评论中提及你?
【解决方案2】:
SELECT
  M.Time,
  SUM(M2.Qty) RunningTotal
FROM
  Main M
  LEFT JOIN Main M2 ON M.Time >= M2.Time
GROUP BY
  M.Time;

【讨论】:

    【解决方案3】:
    SELECT TIME, (SELECT SUM(QTY) FROM main m2 WHERE m2.ITME <= mt1.TIME) AS sum  
    FROM main m1  
    ORDER BY TIME  
    

    这应该可以解决问题,尽管它可能不是最快的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多