次の表があります。
id | start_date | end_date | client_id
1 2013-08-01 2013-08-09 1
2 2013-08-10 2013-08-10 1
3 2013-08-10 2013-08-17 1
4 2013-08-18 2013-08-18 1
5 2013-08-18 2013-08-18 1
6 2013-08-18 2013-08-31 1
7 2013-08-01 2013-08-09 2
8 2013-08-11 2013-08-11 2
9 2013-08-11 2013-08-17 2
10 2013-08-19 2013-08-20 2
私がやろうとしているのは、各クライアントの日数を繰り返さずに、各クライアントが存在した日数を数えることです。そのため、以前のデータから取得しようとしています:
client_id | total_days
1 31
2 18
したがって、クライアントの場合1
、2013 年 8 月 1 日から 2013 年 8 月 31 日までの 31 日間、欠席なく「出席」したため 31 を取得し、クライアントの場合2
は 18 日間出席したため 18 を取得します。
8/1 - 8/9 = 9 days
8/11 - 8/17 = 7 days
8/19 - 8/20 = 2 days
とにかくMySQLでこれを達成する方法はありますか?しばらく試してみましたが、その方法がわかりません。
これがフィドルです