需要一些帮助编写SQL查询

时间:2019-02-21 15:20:11

标签: mysql sql

我有一个这样的客户表,我需要帮助从中检索信息。

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

我想从数据库中获得忠实客户的ID。那是第一次尝试后一直回来的美食爱好者人数。在这种情况下,第一次下单后的天数/周数/月数。

以下是我的查询

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

上面的查询返回当月订购第一顿饭的蛋糕。 我想得到那个月之后继续存在的那些人的监护人

2 个答案:

答案 0 :(得分:0)

好吧,您可以执行以下操作:

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

答案 1 :(得分:0)

假设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年1月订购的所有客户,外部查询找到了foodnum大于1的相同客户ID。