Как получить суммарные значения определенной колонки в MySQL за каждый месяц за последние три года?

Как изменить запрос SQL, чтобы вывести сумму за последние три года? Пробовал использовать LIMIT 3, но ничего не выводится. 

```sql
'SELECT SUM(`sum`) total, MONTH(FROM_UNIXTIME(`time`)) `month`, YEAR(FROM_UNIXTIME(`time`)) `year` FROM balance where type="0" AND YEAR(FROM_UNIXTIME(`time`)) >= YEAR(CURDATE()) - 2 GROUP BY MONTH(FROM_UNIXTIME(`time`)), YEAR(FROM_UNIXTIME(`time`));'
```
  • 18 августа 2024 г. 16:43
Ответы на вопрос 2
Для получения суммарных значений определенной колонки в MySQL за каждый месяц за последние три года вам необходимо использовать следующий запрос:

```sql
SELECT SUM(`sum`) total, MONTH(FROM_UNIXTIME(`time`)) `month`, YEAR(FROM_UNIXTIME(`time`)) `year` 
FROM balance 
WHERE type="0" AND YEAR(FROM_UNIXTIME(`time`)) >= YEAR(CURDATE()) - 2 
GROUP BY `year`, `month`
ORDER BY `year` DESC, `month` DESC;
```

Этот запрос вернет вам суммарные значения колонки `sum` по месяцам за последние три года, отсортированные по убыванию года и месяца.

Что касается вашего вопроса о выводе суммы за последние три года с помощью LIMIT 3, то в SQL LIMIT применяется для ограничения числа результатов, а не для задания временного интервала. Для получения суммы за последние три года вам нужно использовать фильтр WHERE, как это было выполнено в примере выше.
за именование полей в таблице в виде "sum", "time" надо руки отрубать и выгонять из профессии
Похожие вопросы