Mysql ted子查询。它会足够快。这个解决方案非常好而且简单。我没有认真检查它,直到您编辑它以获得可读性创造性解决方案。我认为你需要有相关性,包括广告组,以及它更准确。我唯一不喜欢它的地方是对每个记录执行子查询,这意味着可以执行数千个查询以获得最终结果,因此在大型
Mysql ted子查询。它会足够快。这个解决方案非常好而且简单。我没有认真检查它,直到您编辑它以获得可读性创造性解决方案。我认为你需要有相关性,包括广告组,以及它更准确。我唯一不喜欢它的地方是对每个记录执行子查询,这意味着可以执行数千个查询以获得最终结果,因此在大型,mysql,Mysql,ted子查询。它会足够快。这个解决方案非常好而且简单。我没有认真检查它,直到您编辑它以获得可读性创造性解决方案。我认为你需要有相关性,包括广告组,以及它更准确。我唯一不喜欢它的地方是对每个记录执行子查询,这意味着可以执行数千个查询以获得最终结果,因此在大型数据集上这可能会很慢。@xQbert它是一个相关子查询。它会足够快。这个解决方案非常好而且简单。我没有认真检查它,直到你编辑它的可读性我认为你没有正确理解这个问题。所需的输出显示所有带有行号的行,而不仅仅是每组的第一行。我认为您没有正确理解这个
ted子查询。它会足够快。这个解决方案非常好而且简单。我没有认真检查它,直到您编辑它以获得可读性创造性解决方案。我认为你需要有相关性,包括广告组,以及它更准确。我唯一不喜欢它的地方是对每个记录执行子查询,这意味着可以执行数千个查询以获得最终结果,因此在大型数据集上这可能会很慢。@xQbert它是一个相关子查询。它会足够快。这个解决方案非常好而且简单。我没有认真检查它,直到你编辑它的可读性我认为你没有正确理解这个问题。所需的输出显示所有带有行号的行,而不仅仅是每组的第一行。我认为您没有正确理解这个问题。所需的输出显示所有具有行号的行,而不仅仅是每个组的第一行。需要按ad组进行分区的风险也很小。但这在问题中并没有很好的定义。@xQbert是的,但问题只有一个广告组,也没有被广告组划分的风险。但这在问题中并没有很好的定义。@xQbert是的,但问题只有一个广告组
Ad Group|Vist 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
Desired Output
Ad Group|Visit 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/05/2017|888-465-9999|1
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
A. |09/09/2017|888-465-9999|2
SELECT t1.ad_group
, t1.visit_date
, t1.phone_number
, (SELECT count(*)
FROM tbl_table t2
WHERE t1.phone_number=t2.phone_number
AND t2.visit_date<=t1.visit_date) as number_of_occuvences_within_date
FROM tbl_table t1
ORDER BY t1.visit_date
SELECT `Ad Group`, `Visit Date`, `Phone Number`, count(*) `Number of Occurrences within date`
FROM <table name>
ORDER BY `Visit Date` (ASC|DESC)
GROUP BY `Phone Number`
SET @num_occurence = 0;
SET @phone_no = '';
SELECT derived_t.ad_group,
derived_t.visit_date,
derived_t.phone_number,
derived_t.number_of_occurences
FROM
(
SELECT t1.ad_group,
t1.visit_date,
@num_occurence := CASE
WHEN @phone_no = t1.phone_number
THEN @num_occurence + 1
ELSE 1
END AS number_of_occurences,
@phone_no := t1.phone_number AS phone_number
FROM your_table AS t1
ORDER BY t1.phone_number ASC, t1.visit_date ASC
) AS derived_t
ORDER BY derived_t.visit_date ASC
SELECT `Ad Group`
, `Visit Date`
, `Phone Number`
, ROW_NUMBER() over (PARTITION BY `Ad Group`, `Phone Number` ORDER BY Visit Date Asc) as `Number of Occurrences within date`
FROM TableName
ORDER BY `Visit Date` asc