我的数据如下所示:
id int (11) primary key auto_increment
key int (2)
type int (2)
data int (4)
timestamp datetime
有 5 种不同的键 - 1,2,3,4,5 和三种类型 - 1,2,3
数据是针对特定类型的密钥连续输入的。
我需要提取的是所有 5 个键(1、2、3、4、5)中特定类型(例如类型 1)的数据总和,因此它正好是 5 条记录的总和。我只想对每个键的数据的最新(最大(时间戳)值(其中有 5 个)求和),但它们可能都有不同的时间戳。
像这样的东西......
SELECT sum(data) FROM table WHERE type='1' AND timestamp=(SELECT max(timestamp FROM table WHERE type='1' GROUP BY key)
或类似的东西。当然,这还不算接近。我完全迷失了这个。感觉就像我需要按键分组,但语法让我难以理解。任何建议表示赞赏。
编辑:附加信息:
如果:“数据”是温度。'key' 是星期几。“类型”是早上、中午或晚上
所以数据可能看起来像
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)
如果这些是时间戳顺序 (desc) 并且我想要所有五天的最近中午临时工的总和,则结果将是:在这种情况下为 155,因为最后一个中午也是星期二,它更早,因此不包括在内。说得通?我只想要任何键、特定类型、最新时间戳的“数据”总和。在这个例子中,我最多对 7 条数据求和。