sql - 每天查找上周订购的客户?
问题描述
最近在面试中被问到一个问题。其中有一个客户表和一个订单表。每天如何获取最近一周下单的客户,如何找到连续三天下单的客户?
感谢你的帮助。
提前致谢。
解决方案
为了让过去 N 天每天都订购的客户,我会尝试类似的方法:
select customer_id
from orders
where trunc(order_date) > trunc(sysdate) - :N
group by customer_id
having count(distinct trunc(order_date)) = :N
这个想法是,该WHERE
子句将您的数据限制为过去 N 天内的订单,然后我们GROUP BY
为每个客户组成一个组,然后在该HAVING
子句中我们检查每个客户是否COUNT(DISTINCT TRUNC(ORDER_DATE))
等于 N。
推荐阅读
- java - 如何修复 android studio 中的“无法解决:com.android.volly:volly:1.1.1”错误
- azure - 在 logback.xml 中使用 Azure 应用程序洞察附加程序时,gradle 构建挂起
- java - 在静态服务中返回数据源的静态方法
- c# - 如何使用 AddLine 创建 X 长度的线
- html - 将页面划分为 6
- java - system.getenv() 属性不读取外部 logback.xml 文件的文件路径
- php - 如何在 PHP 中解码这些字符?
- asp.net - Asp.net:如何将值从文本框分配到数据库以及从数据库分配到标签,确切地说是您在文本框中键入它的方式
- node.js - 使用节点命令行连续执行javascript文件
- python - Azure VM 似乎会杀死长时间运行的 MySql 查询