【发布时间】:2013-02-19 15:43:04
【问题描述】:
假设我有这样一张桌子:
标识 |日期 |客户 |出售
并且想为每个客户选择:
- 购买次数
- 最后一次购买价值
- 购买的总金额,当它具有正值时
有了这个表定义:
CREATE TABLE sales (
id int auto_increment primary key,
dates date,
customer int,
sale int
);
还有这个数据:
INSERT INTO sales
(dates, customer, sale)
VALUES
('2012-01-01', 1, 2),
('2012-02-01', 1, 8),
('2012-03-01', 2, 1),
('2012-04-01', 2, 7),
('2012-05-01', 2, -5),
('2012-06-01', 1, 5)
我的结果应该是:
客户 |销售 |最后销售 1 3 5 2 3 7我不知道如何获得它。我已经达到了:
SELECT s.customer, COUNT(s.sale) total_sales, last_sale FROM sales AS s
JOIN
(SELECT customer, sale last_sale FROM sales GROUP BY customer ORDER BY dates DESC) AS t
ON t.customer=s.customer
GROUP BY s.customer
但它不起作用。关于如何获取这些数据的任何想法?
所有代码都在SQL fiddle
【问题讨论】:
-
你能根据fiddle的数据显示你想要的结果吗?
-
当然,@JW,我已经编辑了我的帖子以正确显示它。它在这里,但不是很清楚。