MySQL pivot表创建带有开始、结束时间的活动日志文件
我是MySQL新手 我有一套这样的数据MySQL pivot表创建带有开始、结束时间的活动日志文件,mysql,Mysql,我是MySQL新手 我有一套这样的数据 Tester datetime_start Event Lot_Num Tester#1 20/9/2016 13:21 Down Tester#1 20/9/2016 13:26 LoadTP Lot_A Tester#1 20/9/2016 13:38 LotStart Lot_A Tester#1 20/9/
Tester datetime_start Event Lot_Num
Tester#1 20/9/2016 13:21 Down
Tester#1 20/9/2016 13:26 LoadTP Lot_A
Tester#1 20/9/2016 13:38 LotStart Lot_A
Tester#1 20/9/2016 16:19 LotEnd Lot_A
Tester#1 20/9/2016 16:19 Idle
Tester#1 20/9/2016 16:20 Down
Tester#1 20/9/2016 16:23 LoadTP Lot_B
Tester#1 20/9/2016 16:35 LotStart Lot_B
Tester#1 20/9/2016 17:12 Down Lot_B
Tester#1 20/9/2016 17:36 LotEnd Lot_B
我需要帮助使上面的数据看起来像这样:
Tester Lot_Num Time_Start Time_End
Tester#1 Lot_A 20/9/2016 13:26 20/9/2016 16:19
Tester#1 Lot_B 20/9/2016 16:23 20/9/2016 17:36
我不知道怎么做,我试着做这样的事情
SELECT Tester,Lot_Num,Event,
(case when Event ='LoadTP' then datetime_start end)as Time_Start,
(case when Event ='LotEnd' then datetime_start end)as Time_End
from T_Utilization
Time_Start Time_End
Tester#1 Lot_A 20/9/2016 13:26
Tester#1 Lot_A 20/9/2016 16:19
Tester#1 Lot_B 20/9/2016 16:23
Tester#1 Lot_B 20/9/2016 17:36
但是现在我的桌子看起来像这样
SELECT Tester,Lot_Num,Event,
(case when Event ='LoadTP' then datetime_start end)as Time_Start,
(case when Event ='LotEnd' then datetime_start end)as Time_End
from T_Utilization
Time_Start Time_End
Tester#1 Lot_A 20/9/2016 13:26
Tester#1 Lot_A 20/9/2016 16:19
Tester#1 Lot_B 20/9/2016 16:23
Tester#1 Lot_B 20/9/2016 17:36
需要Mysql方面的帮助。您可以使用条件聚合来实现此目的:
SELECT Tester, LotNum,
MAX(CASE WHEN Event ='LoadTP' THEN datetime_start END) AS Time_Start,
MAX(CASE WHEN Event ='LotEnd' THEN datetime_start END) AS Time_End
FROM T_Utilization
WHERE LotNum IS NOT NULL
GROUP BY Tester, LotNum
您可以为此使用条件聚合:
SELECT Tester, LotNum,
MAX(CASE WHEN Event ='LoadTP' THEN datetime_start END) AS Time_Start,
MAX(CASE WHEN Event ='LotEnd' THEN datetime_start END) AS Time_End
FROM T_Utilization
WHERE LotNum IS NOT NULL
GROUP BY Tester, LotNum
谢谢。解决方案很简单!如果我错了,请纠正我。是“Max”(条件聚合)强制Mysql选择指定的一个结果吗?@Benjaminley是的,它选择具有
Event='LoadTP'/'LotEnd'
的结果。谢谢。解决方案很简单!如果我错了,请纠正我。是“Max”(条件聚合)强制Mysql选择指定的一个结果吗?@benjaminley是的,它选择具有Event='LoadTP'/'LotEnd'
的结果。