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'
上面的查询返回在当月订购第一餐的 custid。我想得到那些在那个月之后继续的人的监护人
解决方案
假设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。
推荐阅读
- c# - 是否可以覆盖 ASP.NET 项目引用?
- python - 想要使用 python 在列表中读取带有名称、值、空值、时间戳的字符串
- python - pandas.get_dummies 转换 float64
- python - 使用单词作为另一个文本文件中的键从文本文件中提取行
- python - selenium.common.exceptions.WebDriverException:消息:“Mozilla Firefox”可执行文件在使用 GeckoDriver 时可能具有错误的权限
- php - 如何使用 MySQL 函数按属性删除 JSON 数组中的对象?
- ios - 使用 DJI UXSDKDemo (iOS) 记录数据的最佳方法
- php - 如何创建一个 cron 作业
- php - PHP 两个不同的按钮发送相同的数据
- html - VBA填写不是文本区域的在线表格