首页 > 解决方案 > 在编写 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'

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

标签: mysqlsql

解决方案


假设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。


推荐阅读