Включить только если минимум 6 месяцев активности

0

Как включить только компании b2b_id с минимальной активностью 1 счета в месяц в течение 6 месяцев.

SELECT
  b2b_id,
  uid,
  issue_date),
  due_date,
  COUNT(*) AS cnt
FROM t_invoice
GROUP BY b2b_id, last_day(issue_date)
HAVING cnt >= 1
Теги:

1 ответ

0
Лучший ответ

Используйте условие наличия с еще одним условием. Обратите внимание, что агрегатное использование не обязательно должно существовать в предложении select.

SELECT
      b2b_id
    , uid
    , issue_date
    , due_date
    , COUNT(*) AS cnt
FROM t_invoice
GROUP BY
      b2b_id
    , last_day(issue_date)
HAVING cnt >= 1
AND COUNT(DISTINCT (case when issue_date >= (current_date - interval 6 month) then month(issue_date) end)) = 6

Не уверен, какой столбец даты используется, я выбрал issue_date

  • Если issue_date> = сегодня минус 6 месяцев, то верните номер месяца
  • подсчет числа отдельных месяцев
  • если 6, то по крайней мере один isse_date в месяц, за последние 6 месяцев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню