前提・実現したいこと
mysql 5.7の環境です
staff_id | datetime | status |
---|---|---|
101 | 2021-01-01 10:00:00 | 1 |
101 | 2021-01-01 11:00:00 | 1 |
101 | 2021-01-01 12:00:00 | 0 |
101 | 2021-01-01 13:00:00 | 1 |
101 | 2021-01-01 14:00:00 | 0 |
101 | 2021-01-01 15:00:00 | 1 |
101 | 2021-01-01 16:00:00 | 1 |
201 | 2021-01-01 10:00:00 | 0 |
201 | 2021-01-01 11:00:00 | 0 |
201 | 2021-01-01 12:00:00 | 1 |
201 | 2021-01-01 13:00:00 | 1 |
201 | 2021-01-01 14:00:00 | 1 |
201 | 2021-01-01 15:00:00 | 0 |
201 | 2021-01-01 16:00:00 | 0 |
上記のようなシフトデータが存在した場合、
staff_id毎に、statusが1の『最小となる時間』と『1時間毎に連続する数』を取得するにはどのようにしたら良いでしょうか?
結果イメージ
最終的には以下のような結果を取得したいです
staff_id | min_datetime | count |
---|---|---|
101 | 2021-01-01 10:00:00 | 2 |
101 | 2021-01-01 13:00:00 | 1 |
101 | 2021-01-01 15:00:00 | 2 |
201 | 2021-01-01 12:00:00 | 3 |
row_numberやoverを使えれば実現出来そうだったのですが
mysql8の環境にすることは叶わない為、5.7系で代替となるSQLを書く事が出来ずに困っております
お力添え頂けますと幸いです
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。