【发布时间】:2017-07-23 03:20:14
【问题描述】:
我的表中有名为 prices 的数据,如下所示;
+--------------------------------------+-------+-------+--------+------------+
| ID | E5 | E10 | DIESEL | DATE |
+--------------------------------------+-------+-------+--------+------------+
| a1978958-a6c4-447b-a90c-3d189da0f831 | 1.289 | 1.269 | 1.059 | 07/22/2017 |
| a1978958-a6c4-447b-a90c-3d189da0f831 | 1.259 | 1.239 | 1.029 | 07/22/2017 |
+--------------------------------------+-------+-------+--------+------------+
我想计算 E5、E10、DIESEL 的平均值。然后我想在同一个表中合并两列 ID 和 DATE。 (列名和顺序保持不变)
select ID, DATE, avg(E5) as E5, avg(E10) as E10, avg(DIESEL) as DIESEL from prices group by ID, DATE;
然后我插入了以下查询。
select t1.ID, t2.ID, t1.DATE, t2.DATE from prices as t1 inner join prices as t2 on t1.ID = t2.ID and t1.DATE = t2.DATE;
我无法用上述两个查询合并两行。结果将是所有行值中的下图。
+--------------------------------------+-------+-------+--------+------------+
| ID | E5 | E10 | DIESEL | DATE |
+--------------------------------------+-------+-------+--------+------------+
| a1978958-a6c4-447b-a90c-3d189da0f831 | 1.274 | 1.254 | 1.044 | 07/22/2017 |
+--------------------------------------+-------+-------+--------+------------+
有什么办法吗?
提前致谢,
【问题讨论】:
-
您的第一个查询是我会给出的答案,但显然您还有其他想法。你能告诉我们你的预期输出吗?
-
当我输入第一个查询时,我会得到正确的结果。但是我想将此值保存到我的表中,这样我就不会在上图中有值。例如,我有 a1978958-a6c4-447b-a90c-3d189da0f831 id 值,它有多个具有相同日期的行。我想将此作为唯一行保存到表中
-
原来的两条记录会怎样?你能把你想要的结果放到一个新表中吗?