我有一张桌子:
CityID ParamName ParamValue
------ ----------- ----------
1 Temperature 23
1 Humidity 56
2 Temperature 27
2 Humidity 49
我想创建一个像这样的视图:
CityID Temperature Humidity
------ ----------- --------
1 23 56
2 27 49
我的数据库引擎是MySQL。
有人可以帮我定义这样的观点吗? Anyhelp将不胜感激。
答案 0 :(得分:1)
MySQL没有PIVOT
功能,因此您需要CASE
声明:
SELECT CityId,
SUM(CASE WHEN ParamName = 'Temperature' THEN ParamValue END) Temperature,
SUM(CASE WHEN ParamName = 'Humidity' THEN ParamValue END) Humidity
FROM yourTable
GROUP BY CityId
答案 1 :(得分:0)
类似
select someTable.CityID,temps.ParamValue as Temperature,Hums.ParamValue as Humidity
From SomeTable
inner join someTable temps
On someTable.CityID = temps.CityID and temps.ParamName = 'Temperature'
inner join SomeTable hums
On someTable.CityID = hums.CityID and hums.ParamName = 'Humidity'