MySQL 获取上个月的留存用户数(SUM 问题)

标签 mysql

我正在尝试获取上个月进行过交易并且本月到目前为止已经回来的用户总数。

目前,我的代码可以正常工作,但无法汇总唯一用户 ID 的计数。这是我的东西

SELECT * from
(
   SELECT tx_date, count(distinct user_id) 
   from (
      SELECT p.user_id, date(min(p.timestamp)) tx_date 
      from purchase p
      where date(timestamp) between '2018-04-01' and '2018-04-30'
      and user_id in (SELECT * from analytics_march_mau)
      group by 1) b
   group by 1) t1
JOIN (
   select distinct date(timestamp) dates 
   from purchase 
   where date(timestamp) between '2018-04-01' and '2018-04-30') a
on a.dates >= t1.tx_date
group by 1

这给了我以下结果

SQL query results

现在的问题是我需要将查看的数据更改为仅返回第二列的 tx_date 和总和

这应该改变

SELECT * from

类似的东西

SELECT dates, SUM(count)

但是当我尝试这个时,我得到一个错误“'字段列表'中的未知列'计数'” 我不知道那个专栏叫什么

PS:我是从一个 friend 那里得到这个查询的想法,如果有更简单的方法来完成这个,我很乐意尝试。

最佳答案

我删除了很多嵌套查询。我有一个 SQLFiddle在不使用参数 user_id in (SELECT * from analytics_march_mau)

的情况下实现
SELECT COUNT(distinct user_id), DATE_FORMAT(timestamp, "%Y-%m") as date
FROM purchase
WHERE year(timestamp)=2018 AND month(timestamp)=4
AND user_id in (SELECT * FROM analytics_march_mau);

在不测试我遗漏的部分的情况下,我相信这会对您有所帮助。

您可以改进您的问题的领域是格式化您的查询。添加一段数据而不是照片。如果可能,还提供一个 SQLFiddle。

关于MySQL 获取上个月的留存用户数(SUM 问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49742704/

相关文章:

mysql - SQL Select 语句 - 即使在定义每列来自哪个表时,列定义不明确

mysql - 无法使用来自 GAE 的非根帐户连接到 Google Cloud SQL

mysql - 在 django 中使用什么数据库模式进行一对二对应?

mysql - 将旧的 3.23.49 MySQL 数据库转移到 5.0.51 MySQL 数据库 - 以 ANSI 和 UTF-8 编码

mysql - 跟踪电子商务访客和销售

python - 从 CSV 行复制值并添加到 ID 相同的行

mysql - 分区表,每个分区位于我的硬盘上的不同磁盘上

MySQL查询获取类似于给定的列值

mysql - 如何在不同端口的同一台机器上配置 MySQL?

PHP & MySQL 检查更新的行