Условная сумма () в зависимости от месяца - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть некоторые данные

ID  |Price | Date 
01  | 100  | 2019-04-11
02  |200  | 2019-04-12
03  |300  | 2019-05-10

Как я могу получить СУММУ ЦЕНЫ только за апрель МЕСЯЦ (4)?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

Я настоятельно рекомендую написать такую ​​логику, если предположить, что вы имеете в виду апрель 2019 года, а не все апрели с течением времени:

select sum(t.price)
from t
where t.date >= '2019-04-01' and
      t.date < '2019-05-01';

Когда вы используете функцию типа month() для столбца, это почтивсегда предотвращает использование индексов на столбце.Прямые сравнения все же хороши.

0 голосов
/ 21 апреля 2019

это будет работать:

select sum(a.Price),month(a.Date)
from Table1 a
where month(a.Date)=4
group by month(a.Date);

чек: http://sqlfiddle.com/#!9/cfe06/4

вы также можете сделать функциональный индекс по месяцам (a.Date) для более быстрой обработки, как упоминал GordonLinoff !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...