[英]Pivoting in MySQL table
我有一个名为switch的MySQL表,如下所示:
switchName switchCondition switchingTime
----------- --------------- -------------
First ON 10:00
First OFF 11:00
Second ON 10:30
Third OFF 13:00
Third ON 13:45
如何通过根据切换条件旋转切换时间,如何使用上表以以下格式将报告显示为html表?
switchName ON OFF
----------- ----- -------
First 10:00 11:00
Second 10:30 -
Third 13:45 13:00
尝试这个:
SELECT s.switchName,
MAX(CASE WHEN s.switchCondition = 'ON' THEN s.switchingTime ELSE '-' END) AS SwitchON,
MAX(CASE WHEN s.switchCondition = 'OFF' THEN s.switchingTime ELSE '-' END) AS SwitchOFF
FROM switches s
GROUP BY s.switchName;
另一种方法
SELECT s.switchName, s1.switchingTime, s2.switchingTime
FROM switches s
LEFT JOIN switches s1 ON s.switchName = s1.switchName AND s1.switchCondition = 'ON'
LEFT JOIN switches s2 ON s.switchName = s2.switchName AND s2.switchCondition = 'OFF'
GROUP BY s.switchName
(尽管它将破折号表示为NULL
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.