我有一张包含广告系列数据的表格,需要根据client_id和这些广告系列的时间进行分组,获取'spend_perc'最小值和最大值列表。
样本数据为:
camp_id | client_id | start_date | end_date | spend_perc
7257 | 35224 | 2017-01-16 | 2017-02-11 | 100.05
7284 | 35224 | 2017-01-16 | 2017-02-11 | 101.08
7308 | 35224 | 2017-01-16 | 2017-02-11 | 101.3
7309 | 35224 | 2017-01-16 | 2017-02-11 | 5.8
6643 | 35224 | 2017-02-08 | 2017-02-24 | 79.38
6645 | 35224 | 2017-02-08 | 2017-02-24 | 6.84
6648 | 35224 | 2017-02-08 | 2017-02-24 | 100.01
6649 | 78554 | 2017-02-09 | 2017-02-27 | 2.5
6650 | 78554 | 2017-02-09 | 2017-02-27 | 18.5
6651 | 78554 | 2017-02-09 | 2017-02-27 | 98.5
我想要获得的是每个client_id并且在相同的广告系列时间内具有最小和最大'spend_perc'值的行(相同的开始/结束日期):
camp_id | client_id | start_date | end_date | spend_perc
7308 | 35224 | 2017-01-16 | 2017-02-11 | 101.3
7309 | 35224 | 2017-01-16 | 2017-02-11 | 5.8
6645 | 35224 | 2017-02-08 | 2017-02-24 | 6.84
6648 | 35224 | 2017-02-08 | 2017-02-24 | 100.01
6649 | 78554 | 2017-02-09 | 2017-02-27 | 2.5
6651 | 78554 | 2017-02-09 | 2017-02-27 | 98.5
答案 0 :(得分:1)
我认为你会想摆脱camp_id字段,因为在这种情况下这将毫无意义。所以你需要这样的东西:
$fruit_counts=array('apple'=>3, 'banana'=>4, 'orange'=>0);
$fruit_colors=array('apple'=>'red', 'banana'=>'yellow', 'orange'=>'orange', 'plum'=>'purple');
按您想要的标准分组,并选择min和max作为这些值的唯一组合(即每行)的列。
答案 1 :(得分:1)
select * from book
WHERE bookid LIKE '%% OR title LIKE '%%' OR author LIKE '%%' OR publisher OR '%%';