Нужна помощь в написании SQL-запроса - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть такая таблица клиентов, и мне нужна помощь для извлечения информации из нее.

Foodid  |custid  |DilDay           |foodnum    |foodbill  |rating
  4        1        2017-01-02        2           500        7 

Я хочу получить идентификатор постоянных клиентов, которых я имею, из базы данных.Это число любителей еды, которые возвращались после первого испытания.В этом случае следующие дни / неделя / месяц после первого заказа.

ниже мой запрос

 select custid
 from table 
 where foodnum = 1 and  dilday = between '2017-01-02' and '2017-01-30'

Приведенный выше запрос возвращает Custid, который заказал их первую еду в течение этого месяца.Я хочу получить зависть от тех, кто продолжал после этого месяца

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Предполагая, что foodnum является последовательным счетчиком, который увеличивается с каждым ордером, и вы считаете их лояльными, если они заказали более одного раза (даже в январе), вы можете сделать что-то вроде этого:

SELECT custid FROM table
    WHERE foodnum > 1 AND
    custid IN (
        SELECT custid FROM table
            WHERE foodnum = 1 AND
            dilday BETWEEN '2017-01-02' AND '2017-01-30')

... где подзапрос собирает всех клиентов, которые заказали в январе 2017 года, и внешний запрос находит тот же идентификатор клиента с foodnum больше 1.

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

Ну, вы могли бы сделать что-то вроде этого:

select custid
from table 
where foodnum = 1 and dilday >= '2017-01-02'
group by custid
having min(dilday) <= '2017-01-30' and -- ordered in month
       max(dilday) > '2017-01-30'          -- ordered later
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...