请帮助根据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条答案
按热度按时间lpwwtiir1#
您可以使用递归查询将数据拆分为从上午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