您好我有以下SQL问题:
SELECT station_id, filling_station_status,date_created ,
case when filling_station_status="FREE" then 0
else 1 end as status
FROM efahrung.electric_station_time_status
where station_id=11
在我的表中有一列fill_station_status。 它可以是“FREE”或“IN_USE”。
我想对元素进行分组,如果fill_station_status被更改(从“FREE”到“IN_USE”),它将在我的情况下创建一个日期范围date_created。 在下一次从(“IN_USE”到“FREE”)的更改中,它会创建一个新的日期范围。
感谢您的建议。
答案 0 :(得分:0)
如果你只需要SQL查询来在输出中生成日期范围,那么试试这个:
Select s.station_id,
Coalesce(e.filling_station_status, s.filling_station_status) fillingStationStatus,
case e.filling_station_status
when "FREE" then 0 else 1 end status,
s.date_created startDate,
e.date_created endDate
From efahrung.electric_station_time_status s
Left Join efahrung.electric_station_time_status e
On e.station_id = s.station_id
and s.filling_station_status = 'IN_USE'
and e.filling_station_status = 'FREE'
and e.date_created =
(Select Min(date_created)
From efahrung.electric_station_time_status
Where station_id = s.station_id
and date_created > s.date_created)