powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сумма по с MAX и GROUP BY
3 сообщений из 3, страница 1 из 1
Сумма по с MAX и GROUP BY
    #38745978
qtech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Есть задача считать последние записи из истории покупок для клиента по каждому магазину. Все мои попытки составить запрос провалились, нужна помощь!

Данные такие
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE TABLE `history` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `c_id` int(11) NOT NULL,
  `account_id` int(11) NOT NULL,
  `value` decimal(19,4) DEFAULT NULL,
  `date` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `acc_channel_date` (`account_id`,`c_id`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `history` (`id`, `c_id`, `account_id`, `value`, `date`)
VALUES
	(7, 1, 10, 13.0000, '2014-01-01 10:15:12'),
	(8, 1, 10, 1.0000, '2014-01-03 10:15:12'),
	(9, 3, 10, 15.0000, '2014-01-03 10:15:12'),
	(3, 3, 12, 33.0000, '2014-01-03 10:15:12'),
	(5, 3, 12, 55.0000, '2014-01-06 10:15:12'),
	(1, 1, 22, 10.0000, '2014-01-01 10:15:12'),
	(2, 2, 22, 33.0000, '2014-01-02 10:15:12'),
	(4, 1, 22, 35.0000, '2014-01-05 10:15:12'),
	(6, 2, 22, 100.0000, '2014-01-05 12:15:12');



Нужно суммировать последние строки(последние по дате) по каждому магазину (c_id) для конкретного клиента.
На этих данных, результат который я хотел бы получить
`account_id` SUM(`value`) 10 16125522135

Спасибо!
...
Рейтинг: 0 / 0
Сумма по с MAX и GROUP BY
    #38745986
qtech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал сделать следующим запросом
Код: plsql
1.
2.
3.
SELECT SUM(`value`), `account_id` 
FROM (SELECT `value`,  `account_id`, MAX(`date`) FROM history GROUP BY c_id, account_id) as maxres
GROUP BY `account_id`
...
Рейтинг: 0 / 0
Сумма по с MAX и GROUP BY
    #38746011
qtech
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде решил задачу таким запросом

Код: plsql
1.
2.
3.
SELECT h.`account_id`, SUM(h.`value`)
FROM (SELECT  MAX(dd.`id`) as id, dd.c_id, dd.`account_id` FROM history dd GROUP BY  dd.c_id,  dd.account_id) as maxres
JOIN history h ON h.id = maxres.id GROUP BY h.`account_id`
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сумма по с MAX и GROUP BY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]