CREATE TABLE S (
`summa` INT,
`start_date` DATE
);
INSERT INTO S VALUES
(10, NOW()),
(20, DATE_SUB(NOW(), INTERVAL 1 MONTH)),
(30, DATE_SUB(NOW(), INTERVAL 1 MONTH));
SET @MONTH = DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 MONTH), '%Y-%m');
SELECT
SUM(`summa`) as full_summa,
SUM(
IF(DATE_FORMAT(`start_date`, '%Y-%m') = @MONTH, `summa`, 0)
) `month_summa`,
AVG(
IF(
DATE_FORMAT(`start_date`, '%Y-%m') = @MONTH, `summa`, null)
) `month_average`
FROM S;