2017-09-18 2 views
0

私は日付とint値を持つSQLテーブルを持っており、これらのint値の合計が日付ごとに増加する新しい列を作成したいと考えています。SQLの日付をどのように集計するのですか?

[date1、date2、date3]、[1、2、3]の列がある場合、[1、3、6]で新しい列が必要です。どうしたらいいですか?

+5

使用しているデータベースであなたの質問にタグを付けます。サンプルデータと望ましい結果も提供してください。 –

+2

Wbich RDBMSを使用していますか? –

答えて

0

私が正しく理解していれば、あなたは+を使用します。

select col1 as newcol1, (col1 + col2) as newcol2, (col1 + col2 + col3) as newcol3 
. . . 
0

私はこれらのint日付でincreseangly 値の合計を使用して新しい列を作成します。

あなたが使用しているRDBMS何を言及しなかったが、あなたは、SQL Serverまたはpostegre、またはランク付け機能をサポートする任意のデータベースシステムを使用している場合、あなたはこれを行うことができます。

WITH CTE 
AS 
(
    SELECT [Date], id, 
    row_number() over(order by date) as rn 
    FROM table1 
) 
SELECT 
    Date, id, 
    (SELECT SUM(id) FROM CTE AS c2 WHERE c2.rn <= c1.rn) AS Sum 
FROM CTE as c1; 

このあなたを与える:

| Date | id | Sum | 
|-------|----|-----| 
| date1 | 1 | 1 | 
| date2 | 2 | 3 | 
| date3 | 3 | 6 | 

demo

関連する問題