Sql 按日期列出的累计金额

Sql 按日期列出的累计金额,sql,google-bigquery,klipfolio,Sql,Google Bigquery,Klipfolio,我们有一个按日期保存累计金额值的表,例如: | date. | | | 2015-03-01 | 1.23 | | 2015-03-04 | 1.98 | | 2015-03-06 | 2.23 | And we have a table with all dates we need, for instance: | date. | | 2015-03-01 | | 2015-03-02 | | 2015-03-03

我们有一个按日期保存累计金额值的表,例如:

|       date.      |          |

| 2015-03-01 | 1.23 |

| 2015-03-04 | 1.98 |

| 2015-03-06 | 2.23 |

And we have a table with all dates we need, for instance:

|       date.      |

| 2015-03-01 |

| 2015-03-02 |

| 2015-03-03 |

| 2015-03-04 |

| 2015-03-05 |

| 2015-03-06 |

We would like to get:

|       date.      |          |

| 2015-03-01 | 1.23 |

| 2015-03-02 | 1.23 |

| 2015-03-03 | 1.23 |

| 2015-03-04 | 1.98 |

| 2015-03-05 | 1.98 |

| 2015-03-06 | 2.23 |
仅仅使用SQL本身就可以吗

我不知道该怎么做

我尝试过一些交叉连接操作,但没有成功


谢谢

我意识到-在这种情况下应该更简单(更简单)。
试试下面

SELECT 
  dates_table.date,
  MAX(amounts.amount) OVER(ORDER BY dates_table.date) AS amount
FROM dates_table LEFT JOIN amounts_table
ON dates_table.date  = amounts_table.date
因为你们中的一些人在接受这个答案和思考它时有困难 不起作用-我只是在下面添加了一个例子来“证明”上面的方法是有效的 :o)

结果是:

Row dates_date  amount   
1   2015-03-01  1.23     
2   2015-03-02  1.23     
3   2015-03-03  1.23     
4   2015-03-04  1.98     
5   2015-03-05  1.98     
6   2015-03-06  2.23

很抱歉,我无法复制这一个,在第二次量更改后,它无法正确获取值,第一个非常有效,非常感谢,没问题-它在我的快速测试中有效-因此我也想分享它。我相信-它仍然应该工作-但你需要小心字段命名-如果你有机会尝试使其工作:o)在回答中添加示例Mikhail,对不起,我以前无法使其工作,但我现在得到了你。这是一个很棒的解决方案。再次谢谢你,没问题。很高兴你能让它为你自己工作
SELECT    
  dates.date,   
  MAX(amounts.amount) OVER(ORDER BY dates.date) AS amount 
FROM (   
  SELECT * FROM      
    (SELECT '2015-03-01' AS [date]),     
    (SELECT '2015-03-02' AS [date]),     
    (SELECT '2015-03-03' AS [date]),     
    (SELECT '2015-03-04' AS [date]),     
    (SELECT '2015-03-05' AS [date]),     
    (SELECT '2015-03-06' AS [date])   
) AS dates 
LEFT JOIN (  
  SELECT * FROM     
    (SELECT '2015-03-01' AS [date],  1.23 AS amount),     
    (SELECT '2015-03-04' AS [date], 1.98 AS amount),      
    (SELECT '2015-03-06' AS [date], 2.23 AS amount) 
) AS amounts 
ON dates.date  = amounts.date 
Row dates_date  amount   
1   2015-03-01  1.23     
2   2015-03-02  1.23     
3   2015-03-03  1.23     
4   2015-03-04  1.98     
5   2015-03-05  1.98     
6   2015-03-06  2.23