mysql - 计算独特客户的累积量

标签 mysql

所以我有这张表:

bid_date     bid_count     cum_quote_count     unique_cust     cum_unique_cust
--------     ---------     ---------------     -----------     ---------------

3/31/2015       25             25                 5                  5
4/01/2015       50             75                 12                 10
4/02/2015       5              80                 5                  13
4/03/2015       48             128                25                 20
4/04/2015       61             189                9                  32

我在这里跟踪的是 cum_unique_cust 列。这会计算当天和前几天的累计唯一客户,但是,我手动执行此操作。例如,如果我想获取 4/01/2015 的累计唯一身份客户,我会在“2015-03-31”和“2015-04-01”之间写入 DATE(created_at),然后在下一个日期再次执行此操作,并将结果复制到 Excel 中。

有没有什么方法可以在 MySQL 中自动完成此操作,而无需我将它们复制并粘贴到 Excel 中?

最佳答案

你可以尝试这样的事情

SELECT
  current_cum.*,
  COALESCE(current_cum.Value - prev_cum.Value, 0) AS cum_unique_cust
FROM
  your_table    AS current_cum
LEFT JOIN
  your_table    AS prev_cum
    ON prev_cum.bid_date = (SELECT MAX(bid_date)
                          FROM your_table
                         WHERE bid_date < current_cum.bid_date)

MySQL - Subtracting value from previous row, group by

关于mysql - 计算独特客户的累积量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38135181/

相关文章:

mysql - 如何形成这个 MySQL 查询?

Java - 找不到 hibernate.cfg.xml 文件

javascript - 通过 PHP 从 HTML 表单向数据库插入多个选项

python - 南方(对于Django)可以将数据行插入数据库吗?

MySQL 5.7 存储过程

php - 无法在 mysql 表中插入 post 数组

php - HTML 表单在数据库中发布正确的值(TinyINT 除外)

MySQL boolean 值 - 翻转值?

带有连接的Java Mysql查询数据库

php - 非常简单的 PHP + MySql 登录表单不起作用?