【问题标题】:MySQL get number of retained users from previous month (issue with SUM)MySQL 获取上个月的保留用户数(SUM 问题)
【发布时间】:2018-04-11 02:58:28
【问题描述】:

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

目前,我的代码可以正常工作,但无法汇总唯一用户 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

这给了我以下结果

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

这应该改变

SELECT * from

类似

SELECT dates, SUM(count)

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

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

【问题讨论】:

  • 那么您希望您的结果是什么样的?您想要一个像 2018 年 4 月这样的日期以及该月的总计数吗?
  • 是的,单日和当月累计数
  • 为什么你有第二个查询在那里使用JOIN?它与最终结果有什么相关性?

标签: mysql


【解决方案1】:

我删除了很多嵌套查询。我有一个 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);

没有测试我遗漏的部分,我相信这应该对你有所帮助。

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

【讨论】:

  • 感谢@mcv 的帮助。这给了我当月返回用户总数的总数。我怎样才能最好地修改您的 sn-p 以提供每周或每天的累积计数?
  • 这超出了您的问题范围。你试过搜索吗?这是您的new question 的一种潜在解决方案
【解决方案2】:

我能想到的最简单的方法是:

SELECT COUNT(distinct a.user_id)
FROM purchase a
WHERE date(a.timestamp) between '2018-03-01' and '2018-03-31'
JOIN purchase b on b.user_id = a.user_id
    AND date(b.timestamp) between '2018-04-01' and '2018-04-30'

这会在 user_id 上与自身进行购买的内部连接,其中连接的每一侧是每个月。

有更聪明的方法可以获取上个月和当前月份的日期,但查询的本质是相同的。

【讨论】:

  • @OsobaOsaze 现在试试(我有几个留括号)
  • 是的,我注意到日期之后的那些括号。我在运行查询时将它们取出,但仍然出现语法错误。不知道还有什么可以解决的
猜你喜欢
  • 1970-01-01
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 2014-07-15
  • 1970-01-01
相关资源
最近更新 更多