sql - SQL关于如何列出单年下单超过30单的客户
问题描述
select CustomerKey, FirstName, LastName
from DimCustomer
where CustomerKey in
(select distinct CustomerKey
from FactInternetSales
where year(OrderDate) = 2005 or year(OrderDate) = 2006
or year(OrderDate) = 2007 or year(OrderDate) = 2008);
我应该在哪里添加“超过 30 个订单”部分?
解决方案
通过使用连接和聚合过滤器尝试如下
select DimCustomer.CustomerKey,
DimCustomer.FirstName, DimCustomer.LastName,year(FactInternetSales.OrderDate),count(*)
from DimCustomer join FactInternetSales
on DimCustomer.CustomerKey=FactInternetSales.CustomerKey
group by CustomerKey, FirstName, LastName,year(FactInternetSales.OrderDate)
having count(*)>=30
推荐阅读
- android - Android:程序类型已存在:com.google.zxing.BarcodeFormat
- python - 使用opencv检测网格的角
- amazon-web-services - 无法使用 ec2 + 应用程序负载均衡器获得 websocket 连接
- node.js - Babel 做了什么让我使用任何名称来导入导出函数的节点模块
- apache - apache 不工作,显示“404 page not found”错误
- cakephp - CakePHP 3 使用顺序对关联数据 DESC 进行排序
- javascript - NodeJs MYSQL 序列批量插入最佳实践
- reporting-services - SSRS 2016 找到第二个最小值/第二个最大值
- acumatica - 选择企业帐户后联系人选择器中的数据消失
- c# - 不通过实体框架模型 C# 将数据添加到 SQL 数据库