バージョン:mysql 5.1.73
グループ毎にflg=1が連続した場合のみ、該当のレコードを抽出したいのですが、
SQLがうまく思い浮かばず、ご教授いただけないでしょうか。
イメージとして、テーブルを使って説明します。
・テーブルA
ID | 部署CD | 日付 | flg |
---|---|---|---|
1 | A001 | 20210901 | 1 |
2 | A001 | 20210903 | 0 |
3 | A001 | 20210905 | 1 |
4 | A001 | 20210909 | 1 |
5 | A002 | 20210902 | 0 |
6 | A002 | 20210905 | 0 |
7 | A002 | 20210908 | 1 |
8 | A002 | 20210909 | 1 |
9 | A003 | 20210902 | 0 |
上記テーブルの場合だと、下記のような結果を出力できればと思います。
ID | 部署CD | 日付 | flg |
---|---|---|---|
3 | A001 | 20210905 | 1 |
4 | A001 | 20210909 | 1 |
7 | A002 | 20210908 | 1 |
8 | A002 | 20210909 | 1 |
mysqlでなければ、row_number()を利用して出力できるようなのですが、
row_number()が利用することができず、詰まっています。
SQLだけでもありがたいのですが、SQLについてあまり詳しくなく、
後学のため作成いただいたSQLの記述内容や参考になるサイトを教えていただけると
非常にありがたいです。
回答1件
あなたの回答
tips
プレビュー