这是关于仍未解决的问题here - 我想尝试以不同的方式处理它。
我有一个包含两条信息的MySQL表:order_date
和email_address
。这是详尽无遗的,这意味着如果有人碰巧每天进行多次购买,则会出现重复。
我需要在尽可能少的查询中获得以下报告,希望是:
YYYY-MM | number_emails_this_month | numer_emails_repeated_prior
查询结果的某些示例输出如下所示:
YYYY-MM | number_emails_this_month | numer_emails_repeated_prior
2010-02 23423 1231
2010-03 4422 2234
2010-04 1424 650
非常感谢任何帮助!
答案 0 :(得分:0)
我不确定我明白什么是number_emails_repeated_prior
。如果您可以发布一个简短的数据示例和相应的想要结果示例,那将会很有帮助。
猜测您的目标是什么,每月获得特定用户的电子邮件数量,您只需:
SELECT DATE_FORMAT(order_date, '%Y-%m') as `YYYY-MM`,
COUNT(email_address) as `number_emails_this_month `
FROM table_name
WHERE email_address = 'some@address'
GROUP BY 1
ORDER BY 1
答案 1 :(得分:0)
此问题在随后的相关问题中得到了解答:
MySQL Subquery with User-Defined Variables
最终解决方案是创建一个表格,其中包含所请求的范围并加入,而不是使用子查询来定义相关范围。回想起来,在MySQL中使用用户定义的变量有助于搜索无子查询的解决方案。