Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 根据某些其他行标准对排序日期进行编号_Mysql - Fatal编程技术网

Mysql 根据某些其他行标准对排序日期进行编号

Mysql 根据某些其他行标准对排序日期进行编号,mysql,Mysql,我试图计算整张表中每一行中的某个值发生的次数,正如大家所看到的,我已经根据日期对表进行了排序 Campaign|Start Date|Phone Number --------+----------+------------ A. |09/01/2018|555-444-3321 A. |09/02/2018|777-454-3333 A. |09/03/2018|555-444-3321 A. |09/04/2018|777-454-3333 A.

我试图计算整张表中每一行中的某个值发生的次数,正如大家所看到的,我已经根据日期对表进行了排序

Campaign|Start Date|Phone Number
--------+----------+------------
A.      |09/01/2018|555-444-3321
A.      |09/02/2018|777-454-3333
A.      |09/03/2018|555-444-3321
A.      |09/04/2018|777-454-3333
A.      |09/05/2018|555-444-3321
A.      |09/06/2018|777-454-3333
A.      |09/07/2018|555-444-3321
A.      |09/08/2017|777-454-3333
期望输出

Campaign|Start Date|Phone Number|Number of Occurrences within date
--------+----------+------------+---------------------------------
A.      |09/01/2018|555-444-3321|1
A.      |09/02/2018|777-454-3333|1
A.      |09/03/2018|555-444-3321|2
A.      |09/04/2018|777-454-3333|2
A.      |09/05/2018|555-444-3321|3
A.      |09/06/2018|777-454-3333|3
A.      |09/07/2018|555-444-3321|4
A.      |09/08/2017|777-454-3333|4
A.      |09/08/2017|999-432-1111|1

也许您需要为每个不同的电话号码计算一个行号。如果您有版本8或更高版本,则可以使用行数函数。如果没有,您可以使用以下变量

drop table if exists t;
create table t(Campaign varchar(2), StartDate date,PhoneNumber varchar(20));
insert into t values
('A.'      ,STR_TO_DATE('09/01/2018','%m/%d/%Y'),'555-444-3321'),
('A.'      ,STR_TO_DATE('09/02/2018','%m/%d/%Y'),'777-454-3333'),
('A.'      ,STR_TO_DATE('09/03/2018','%m/%d/%Y'),'555-444-3321'),
('A.'      ,STR_TO_DATE('09/04/2018','%m/%d/%Y'),'777-454-3333'),
('A.'      ,STR_TO_DATE('09/05/2018','%m/%d/%Y'),'555-444-3321'),
('A.'      ,STR_TO_DATE('09/06/2018','%m/%d/%Y'),'777-454-3333'),
('A.'      ,STR_TO_DATE('09/07/2018','%m/%d/%Y'),'555-444-3321'),
('A.'      ,STR_TO_DATE('09/08/2017','%m/%d/%Y'),'777-454-3333');

select *
from
(
select t.* ,
        if(phonenumber <>  @p, @occ:= 1,@occ :=@occ + 1) occurance,
        @p:=phonenumber  p
from t
cross join (select @occ:=0, @p:='') o
order by phonenumber,startdate
) s
order by startdate;
你的问题不清楚一个电话号码在一次约会中是否会出现不止一次,或者如果它出现了,你希望发生什么。此外,您的日期似乎存储为文本,而不是日期