Предположим, что у меня есть таблица вроде этого:
id | даты | клиент | продажа
И хотите выбрать для каждого клиента:
- количество покупок
- последняя стоимость покупки
- общий объем покупок, когда он имеет положительное значение
С помощью этой таблицы:
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)
Мои результаты должны быть:
customer | sales | last_sale 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
