0

プロジェクトの場合、データを集計するクエリがあります。

SELECT
    code,
    SUM(someValue) as summedValueForCode
FROM
    someTable
GROUP BY
    code;

ここで必要なのは、summedValueForCode がすべての行で表す % を定義する 3 番目の列です。したがって、summedValueForCode / summedValueForAllRows.

私は次のようなことができます:

SELECT
    code,
    SUM(someValue) as summedValueForCode,
    (100 * SUM(someValue) / (SELECT sum(someValue) FROM someTable)) as valueForCodeToTotal
FROM
    someTable
GROUP BY
    code;

しかし、それはあまりエレガントに見えません。

別のオプションは次のとおりです。

SELECT
    code,
    SUM(someValue) as summedValueForCode,
    (100 * SUM(someValue) / totalSum) as valueForCodeToTotal
FROM
    someTable,
    (SELECT sum(someValue) as totalSum FROM someTable) as summedTable
GROUP BY
    code;

それでも、実際のクエリは非常に複雑なので、そのようなクエリをもう一度追加するという考えは好きではありません。

集計関数を使用して、GROUP を無視してすべての行の SUM を計算する方法はありますか?

4

2 に答える 2