计算独特客户的累积数量

时间:2016-07-01 00:14:31

标签: mysql

所以我有这张桌子:

>>> (np.arange(10) == [[[0]], [[5]], [[4]]]).astype(float)
array([[[ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]],

       [[ 0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.]],

       [[ 0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.]]])

我在这里跟踪的是cum_unique_cust列。这会计算当天和之前几天的累计唯一身份客户,但是,我会手动执行此操作。例如,如果我想获得2015年4月1日的累积唯一客户,我会写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 ,然后在下一个日期再次执行,将结果复制到Excel。

有没有办法可以在MySQL中自动完成,而不是我在Excel中复制和粘贴它们?

3 个答案:

答案 0 :(得分:0)

你可以试试这样的东西

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

答案 1 :(得分:0)

使用date_sub获取上一个日期。

或您可以使用date_add获取指定日期的下一个日期。

add_action('action_name', 'action_name');
function action_name() {
    echo "<p>Additional text</p>";
}

以下是有关将数据提取到SELECT `unique_cust`,sum(`cum_unique_cust`) FROM `test_table` where `bid_date` between 2015-03-31 and date_add('2015-03-31',interval 1 day ) group by `unique_cust` INTO OUTFILE 'textfile.csv' FIELDS TERMINATED BY '|' 的更多信息  自动。

Exporting results of a Mysql query to excel?

how to save mysql query output to excel or .txt file?

答案 2 :(得分:0)

您错过了很多相关细节,所以我在各行之间阅读。首先,我假设您要将此作为更新。第二,我相信你必须查询一个单独的表来获得客户的数量。

如果需要,可以使用连接,但这不是标准SQL。我觉得MySQL在处理子查询方面并不总是那么好。我还是建议先拍这个。

update <table>
set cum_unique_cust = (
    select count(distinct customerId)
    from <customers>
    where created_at '2015-03-31' and <table>.bid_date
)