我有下表:
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中实现这一点,我已经尝试了一段时间,但对如何做到这一点一无所知.