次のような単一のテーブルを処理するクエリを作成しようとしています。
record_id item_id part_id part_length
----------- ------- -------- ------------
1 0 0 123.12
2 0 0 123.09
3 0 1 231.24
4 0 1 239.14
5 1 0 45.91
6 1 0 46.12
7 1 1 62.24
8 1 1 59.40
これは基本的に、複数回記録されたいくつかのアイテムの一部の不正確な長さの測定値の表です (2 回ではなく、実際には各部分には数百の測定値があります)。単一の選択で、次のような結果を得たい:
record_id item_id part_id unit part_length_ratio
----------- ------- -------- ----- ----------------
1 0 0 1 123.12 / 231.24
2 0 0 1 123.09 / 239.14
3 0 1 0 231.24 / 123.12
4 0 1 0 239.14 / 123.09
5 1 0 1 45.91 / 62.24
6 1 0 1 46.12 / 59.40
7 1 1 0 62.24 / 45.91
8 1 1 0 59.40 / 46.12
これは、基本的にアイテムの各パーツを単位として選択し、測定時間を一致させながら、同じアイテムの他のパーツの長さとこの単位の比率を計算します。この種のテーブルを計算するスクリプトを作成しましたが、SQL で実行したいと考えています。あなたが質問を理解できなくても理解できます:)
for each item i
for each part unit of i
for each part other of i
if unit != other
print i.id other.part_id unit.part_id other.length / unit.length