これを自動的に実行したい場合に備えて、トリガーが必要ですが、当面は実際のクエリに集中します。2 つのフィールドがあり、1 つは保持されている値を示し、もう 1 つは保持されているパーセンテージを示しているとします (ビジネス ニーズに応じて他のフィールドが存在する可能性があります)。ただし、これら 2 つのフィールドのみを使用した例を示します。
Person | Value | Percentage
あなたの例のように、Aが50ドル相当の株式を購入するとさらに仮定しましょう
2番目のサブクエリを使用して、独自の集計値に基づいてテーブルを更新するためのあまり推奨されないアプローチを使用するこのクエリを呼び出す必要があります (挿入トリガーが問題ないか、個別に呼び出された後)。ただし、きれいにしたい場合は、2 つのテーブルを更新する必要があります。1 つは株の値を保持し、もう 1 つはパーセンテージを保持します。
CREATE TABLE SHARES (NAME VARCHAR(20), VALUE INTEGER, PERCENTAGE FLOAT);
INSERT INTO SHARES (NAME,VALUE) VALUES ('A',50);
UPDATE SHARES SET PERCENTAGE = VALUE/(SELECT TOTAL_VALUE FROM
(SELECT SUM(VALUE) AS TOTAL_VALUE
FROM SHARES) AS DUMMY)*100;
INSERT INTO SHARES (NAME,VALUE) VALUES ('B',10);
UPDATE SHARES SET PERCENTAGE = VALUE/(SELECT TOTAL_VALUE FROM
(SELECT SUM(VALUE) AS TOTAL_VALUE
FROM SHARES) AS DUMMY)*100;
Fiddle はhttp://www.sqlfiddle.com/#!2/cec38/1/0にあり ます。