Как проверить, если три даты в столбце таблицы имеют непрерывные месяцы

У меня есть таблица с именем столбца date_tran, который показывает дату, когда пользователь совершил любую транзакцию. Есть ли способ, как я могу проверить, если 3 транзакции сделаны пользователем в том же месяце или 3 непрерывных месяца?

я использую следующий фрагмент:

SELECT CUST_ID,  DATE_TRAN FROM  FAKE_CUST F WHERE 
          EXISTS( 
                SELECT 1 from FAKE_CUST where (TO_CHAR(DATE_TRAN,'MM') = TO_CHAR(F.DATE_TRAN,'MM')-1 OR TO_CHAR(DATE_TRAN,'MM') = TO_CHAR(F.DATE_TRAN,'MM')) AND 
                                        CUST_ID= F.CUST_ID  AND TO_CHAR(DATE_TRAN,'YYYY')=TO_CHAR(F.DATE_TRAN,'YYYY'))
      and exists(
                SELECT 1 from FAKE_CUST where (TO_CHAR(DATE_TRAN,'MM') = TO_CHAR(F.DATE_TRAN,'MM')-2 OR TO_CHAR(DATE_TRAN,'MM') = TO_CHAR(F.DATE_TRAN,'MM')) AND 
                                        CUST_ID= F.CUST_ID AND TO_CHAR(DATE_TRAN,'YYYY')=TO_CHAR(F.DATE_TRAN,'YYYY'))

но показывает все записи в таблице, а не требуемый результат.

1 ответ

  1. Чтобы получить 3 транзакции совершаются пользователем в одном месяце

    Что-то вроде... Группировать по getmonth (DATE_TRN), имеющему count (getmonth (DATE_TRN))>> = 3

MySql:

ВЫБЕРИТЕ CUST_ID, DATE_TRAN ОТ XXX, где cust_id in (ВЫБЕРИТЕ cust_id из XXX группы по DATE_FORMAT(DATE_TRAN, '%m'), имеющему счет (DATE_FORMAT(DATE_TRAN, '%m')) > 2)

  1. Чтобы получить 3 транзакции совершаются пользователем за 3 мин. Месяца

    Группа По getmonth (DATE_TRN), имеющая count (getmonth (DATE_TRN))>> 1, count(getmonth(DATE_TRN)-1) > 1, count(getmonth(DATE_TRN)-2) > 1

Другие вопросы по тегам