その他の例
アプリケーションでの数学関数の使用について学習します。
例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"}