mysql查找具有相同时间戳的值和类型,并在新表中插入

时间:2014-12-22 11:43:04

标签: mysql sql select group-by pivot

有一个mysql数据库,如下所示:

|Timestamp  | Typ          | Value |
|01-01-2011 | temperature1 |  2|
|01-01-2011 | temperature2 | 3 |
|01-01-2011 | humidity1    | 98 | 

我会把这个表格变成这样的东西:

|Timestamp  | temperature1 | temperature2 | humidity1 | 
|01-01-2011 | 2            | 3            | 98        |

所以我希望每个类型的新列和一行中具有相同时间戳的所有值。

1 个答案:

答案 0 :(得分:2)

试试这个:

SELECT A.Timestamp, 
       SUM(CASE WHEN A.Typ = 'temperature1' THEN A.Value ELSE 0 END) AS temperature1, 
       SUM(CASE WHEN A.Typ = 'temperature2' THEN A.Value ELSE 0 END) AS temperature2, 
       SUM(CASE WHEN A.Typ = 'humidity1' THEN A.Value ELSE 0 END) AS humidity1
FROM tableA A 
GROUP BY A.Timestamp;