私は日付とint値を持つSQLテーブルを持っており、これらのint値の合計が日付ごとに増加する新しい列を作成したいと考えています。SQLの日付をどのように集計するのですか?
[date1、date2、date3]、[1、2、3]の列がある場合、[1、3、6]で新しい列が必要です。どうしたらいいですか?
私は日付とint値を持つSQLテーブルを持っており、これらのint値の合計が日付ごとに増加する新しい列を作成したいと考えています。SQLの日付をどのように集計するのですか?
[date1、date2、date3]、[1、2、3]の列がある場合、[1、3、6]で新しい列が必要です。どうしたらいいですか?
私が正しく理解していれば、あなたは+
を使用します。
select col1 as newcol1, (col1 + col2) as newcol2, (col1 + col2 + col3) as newcol3
. . .
私はこれらの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 |
使用しているデータベースであなたの質問にタグを付けます。サンプルデータと望ましい結果も提供してください。 –
Wbich RDBMSを使用していますか? –