计划
- 选择最小条目(最大)由columne1分组,
- 选择由columne1分组的最大条目数(分钟),
- 从分钟数据加入呼叫MAXS到分钟
- 组calls.columne2值
查询
update
calls c
inner join
(
select c1.*, q1.min_ts, q1.max_ts
from calls c1
inner join
(select columne1, min(`timestamp`) min_ts, max(`timestamp`) as max_ts from calls group by columne1) q1
on c1.columne1 = q1.columne1
where c1.`timestamp` = q1.max_ts
) maxs
on c.id = maxs.id
inner join
(
select c1.*, q1.min_ts, q1.max_ts
from calls c1
inner join
(select columne1, min(`timestamp`) min_ts, max(`timestamp`) as max_ts from calls group by columne1) q1
on c1.columne1 = q1.columne1
where c1.`timestamp` = q1.min_ts
) mins
on maxs.columne1 = mins.columne1
set c.columne2 = mins.columne2
;
输出
+----+------------------+----------+-----------+
| id | timestamp | columne1 | columne2 |
+----+------------------+----------+-----------+
| 1 | 2015-07-20 12:00 | 078888 | value 2.4 |
| 2 | 2015-07-19 12:00 | 155896 | value 2.2 |
| 3 | 2015-07-07 12:00 | 278831 | value 2.3 |
| 4 | 2015-07-01 12:00 | 078888 | value 2.4 |
+----+------------------+----------+-----------+
sqlfiddle
你给了我们和您的查询的模式是完全不同的。你可以在你的问题中更新一个或另一个吗? –
我不确定我的查询是否正确,因此我删除了它。 Principe实际上与架构中解释的相同。 –
那么,你只是想要在你运行插入查询时总是插入最老的数据(基于'timestamp'列)'columne2'? –