次のようなデータがあります。
id int (11) primary key auto_increment
key int (2)
type int (2)
data int (4)
timestamp datetime
1、2、3、4、5 の 5 つの異なるキーと、1、2、3 の 3 種類のキーがあります。
データは、特定のタイプのキーに対して継続的に挿入されます。
抽出する必要があるのは、5 つのキー (1,2,3,4,5) すべての特定のタイプ (タイプ 1 など) のデータの合計であるため、正確に 5 つのレコードの合計です。各キーのデータの最新 (max(timestamp) 値 (5 個あります)) のみを合計したいのですが、タイムスタンプがすべて異なる場合があります。
このようなもの....
SELECT sum(data) FROM table WHERE type='1' AND timestamp=(SELECT max(timestamp FROM table WHERE type='1' GROUP BY key)
またはそのようなもの。もちろん、それは近いことではありません。私はこれで完全に迷っています。キーでグループ化する必要があるように感じますが、構文がわかりません。任意の提案をいただければ幸いです。
編集:追加情報:
if: 'data' は温度です。「キー」は曜日です。「タイプ」は朝、昼、夜
したがって、データは次のようになります
morning mon 70 (timestamp)
noon tue 78 (timestamp)
morning wed 72 (timestamp)
night tue 74 (timestamp)
morning thu 76 (timestamp)
noon wed 77 (timestamp)
night fri 78 (timestamp)
noon tue 79 (timestamp)
これらがタイムスタンプ順 (降順) であり、5 日間すべての最新の正午の温度の合計が必要な場合、結果は次のようになります。この場合、最後の正午も火曜日であり、それよりも早いため含まれていないため、155 になります。わかる?任意のキー、特定のタイプ、最新のタイムスタンプのみの「データ」の合計が必要です。この例では、最大で 7 個のデータを合計します。