その他の例
アプリケーションでの数学関数の使用について学習します。
例12-24 1日の取引を取引アプリケーションから取得するための数学関数の適用
取引アプリケーションでの株式トレーダーの1日の取引を含むUserstocks
表について考えてみます。
CREATE TABLE Userstocks (id INTEGER,
stock STRING,
units INTEGER,
buyRate DOUBLE,
sellRate DOUBLE,
PRIMARY KEY (id))
id
フィールドには会社のIDが含まれ、stock
フィールドにはユーザーがストック・オプションを持つ会社名が含まれ、units
フィールドにはユーザーが所有する株式数が含まれ、buyRate
はユーザーが株式を購入した価格であり、sellRate
はユーザーが株式を売却した価格です。
INSERT into Userstocks VALUES (1, "company1", 100, 10.2, 11.5)
INSERT into Userstocks VALUES (2, "company2", 20, 15, 14.7)
SELECT stock,
ceil(units*sellRate-units*buyRate) AS PROFIT,
abs(units*sellRate-units*buyRate) AS TURNOVER,
round(abs(units*sellRate-units*buyRate)*0.5/100, 2) AS BROKERAGE
FROM Userstocks
説明: 上の問合せでは、その日の出来高、損益および仲介手数料をフェッチします。損益は、指定された算術式を使用して計算し、ceil関数を適用して、結果を最も近い整数値として取得します。損益を計算し、abs関数を適用して各取引の出来高を計算します。各出来高に0.5%を適用して仲介手数料を計算し、round関数を使用して結果を小数点以下2桁に丸めます。
{"stock":"company2","PROFIT":-6.0,"TURNOVER":6.0,"BROKERAGE":0.03}
{"stock":"company1","PROFIT":131.0,"TURNOVER":130.0000000000001,"BROKERAGE":0.65}
例12-25 ゲーム・アプリケーションで射撃距離を計算するための数学関数の適用
ゲーム・アプリケーションでの標的射撃のデータを含むArchery
表について考えてみます。
CREATE TABLE Archery (sim INTEGER,
angle DOUBLE,
elevation DOUBLE,
PRIMARY KEY (sim) )
simフィールドはシミュレーション数を示し、angle
フィールドにはゲーマーが標的を狙うことができる様々な角度(度単位)が含まれ、elevation
フィールドには標的が配置される高さ(メートル単位)が含まれます。
INSERT INTO Archery VALUES (1, 30, 50)
INSERT INTO Archery VALUES (2, 45, 50)
INSERT INTO Archery VALUES (3, 70, 95)
SELECT sim, trunc(elevation/sin(radians(angle)),2) AS SLOPE FROM Archery ORDER BY
sim
説明: 特定の高さに配置された標的に当てるために、ゲーマーは一定の角度で狙いを定め、一定の距離で撃ちます。これらの要素は、直角三角形の一辺、鋭角および斜辺を形成します。この問合せでは、標的からのゲーマーの位置に基づいて、標的の高さと角度の様々な組合せについて射撃距離を計算します。radians関数を使用して、角度をラジアンに変換し、sine関数を使用してサイン値を計算します。高さをサイン値で除算して距離を計算し、truncate関数を使用して結果を小数点以下2桁に切り捨てます。
{"sim":1,"SLOPE ":100.0}
{"sim":2,"SLOPE ":70.71}
{"sim":3,"SLOPE ":101.09}
例12-26 特定の溶液のPH値を計算するための数学関数の使用
様々な溶液の水素イオン濃度を含むPHtable
について考えてみます。
CREATE TABLE PHtable (id INTEGER,
sampleName STRING,
hIons DOUBLE,
phValue DOUBLE,
PRIMARY KEY (id) )
id
フィールドには溶液サンプルの識別子が含まれ、sampleName
フィールドには特定のサンプルの名前が含まれ、hIons
フィールドは液体のリットル当たりのモル数の水素イオン濃度、phValue
フィールドは溶液のPH値です。hIons
値を使用して、溶液のphValue
を計算できます。表へのデータの挿入中に、phValue
列をNULLに初期化します。
INSERT INTO PHtable VALUES (1, "sample1", 0.0063095734448019, NULL)
INSERT INTO PHtable VALUES (2, "sample2", 5.0118723362727E-9, NULL)
INSERT INTO PHtable VALUES (3, "sample3", 1.0E-7, NULL)
UPDATE PHtable SET phValue=trunc((log10(1/hIons)),1) where id=1 RETURNING
*
説明: PH値は、溶液内の酸または塩基の強度を示します。この問合せでは、log10関数を使用して、式PH=log10(1/hIons)を使用して溶液のPH値を計算します。関数の戻り値はdoubleであるため、truncate関数を使用して結果を小数点以下1桁に切り捨てます。UPDATE文を使用して、指定した溶液のphValue
フィールドに結果のPH値を設定します。
{"id":1,"sampleName":"sample1","hIons":0.0063095734448019,"phValue":2.2}
SELECT sampleName AS ACIDIC FROM PHtable WHERE trunc((log10(1/hIons)),1) <
7.0
{"ACIDIC":"sample1"}