我有下表:
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
我得到 31 是因为他“在场”了 31 天,从 2013 年 8 月 1 日到 2013 年 8 月 31 日没有间隔,而对于客户,2
我得到 18 天,因为他在场 18 天:
8/1 - 8/9 = 9 days
8/11 - 8/17 = 7 days
8/19 - 8/20 = 2 days
无论如何在MySQL中实现这一点,我已经尝试了一段时间,但不知道如何去做。
这是小提琴