我希望根据start_time和end_time将数据从一行转换为多行。
输入数据:
| 识别号|开始时间|结束时间|停机_分钟|
| - ------|- ------|- ------|- ------|
| ABC123|2022年11月22日12时01分|2022年11月29日14时33分|小行星10232.47|
我需要为此需求编写SQL:
输出数据:
| 识别号|开始时间|结束时间|停机_分钟|
| - ------|- ------|- ------|- ------|
| ABC123|2022年11月22日12时01分|2022年11月23日7时|小行星1138.55|
| ABC123|2022年11月23日7时|2022年11月24日7时|小行星1440|
| ABC123|2022年11月24日7时|2022年11月25日7时|小行星1440|
| ABC123|2022年11月25日7时|2022年11月26日7时|小行星1440|
| ABC123|2022年11月26日7时|2022年11月27日7时|小行星1440|
| ABC123|2022年11月27日7时|2022年11月28日7时|小行星1440|
| ABC123|2022年11月28日7时|2022年11月29日7时|小行星1440|
| ABC123|2022年11月29日7时|2022年11月29日14时33分|四百五十三块九二|
enter image description here
1条答案
按热度按时间e4eetjau1#
您可以使用递归查询将数据拆分为从上午7点开始的每个24小时时段的行:
其中,对于示例数据:
输出:
| 识别号|开始时间|结束时间|下降_分钟|
| - ------|- ------|- ------|- ------|
| ABC123|2022年11月22日12时01分27秒|2022年11月23日07时00分|小行星1138.55|
| ABC123|2022年11月23日07时00分|2022年11月24日07时00分|小行星1440|
| ABC123|2022年11月24日07时00分|2022年11月25日07时00分|小行星1440|
| ABC123|2022年11月25日07时00分|2022年11月26日07时00分|小行星1440|
| ABC123|2022年11月26日07时00分|2022年11月27日07时00分|小行星1440|
| ABC123|2022年11月27日07时00分|2022年11月28日07时00分|小行星1440|
| ABC123|2022年11月28日07时00分|2022年11月29日07时00分|小行星1440|
| ABC123|2022年11月29日07时00分|2022年11月29日14时33分55秒|453.916666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666|
fiddle