所以我有这张桌子:
>>> (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中复制和粘贴它们?
答案 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)
答案 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 '|'
的更多信息
自动。
答案 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
)