2

スプレッドシートをデータベースに複製しようとしていますが、Excelで実行できるように、現在の行の上の行のみを合計する方法に困惑しています。たとえば、1つの列の式は次のとおりです。

=SUM($B$9:$B9)/SUM($E$9:$E9)
=SUM($B$9:$B10)/SUM($E$9:$E10)
=SUM($B$9:$B11)/SUM($E$9:$E11) 

.... 等々。

選択したqryでこの式をどうにかして再現する必要がありますが、方法がわかりませんか?

SELECT Column1,Column2, SUM(Column1) + SUM(Column2) as Expr1
From tblTest
Group By Column1,Column2

何か案は?

    Col1    Col2    Col3  Total     Col1/Total      Trying to get this               
    7       0       3     10         70.00%          70.00%
    1       0       1                100.00%         72.73%
    2       0       4     6          33.33%          58.82%
    3       1       1     5          60.00%          59.09%
4

1 に答える 1

2

トリックは、前のすべての行を識別する方法でサブクエリを使用することです。

SELECT  ID, 
        (
            SELECT SUM(ValueColumn)
            FROM    Test T2
            WHERE T2.ID <= T1.ID
        ) RunningSum
FROM
        Test T1
ORDER BY
        T1.ID

これは機能します。大規模なデータ セットがある場合は、データを選択してアプリケーションで計算することをお勧めします。これは、このクエリを実行するよりも効率的にデータをループして実行中の合計を維持できるためです。

于 2012-08-06T20:13:28.717 に答える