sql - 如何使用代码显示所有假期类型
问题描述
我的作业,我要写sql代码来显示“在2015年的所有订单中,计算每个holidaytype的天数,以及每个holidaytype每天的平均销售额。排除holidaytype=NULL。将结果按平均值排序每天的销售额从高到低。”
这是我一直在尝试使用的代码
select distinct holidaytype, sum(AvgSales) as AvgSales, sum(NumDays) as NumDays
from(
Select min(holidaytype) as holidaytype, count(order_date) as cnt, count(numholidays) as NumDays, avg(o.sales*o.quantity) as AvgSales
from orderline o, orders1 o1, calendar c
where o.Order_ID=o1.Order_ID and datepart(yyyy,order_date)= 2015 and holidaytype is not null) J
group by holidaytype
go
在输出中,只显示了 1 种假期类型,但我应该有 6 或 7 种不同的假期类型。
解决方案
根据您的问题,您正在按假期类型进行分组,因此聚合它没有意义,这无论如何都不是您想要的。
所以代替这个:
Select min(holidaytype) as holidaytype,
你应该做这个:
Select holidaytype,
推荐阅读
- robotics - 使用 blueprism 窥探智能卡读卡器
- java - 有没有办法在没有请求的情况下向打开的会话发送响应?
- windows - 将 Windows cURL 语法转换为等效的 InvokeRestMethod 命令
- netlogo - Netlogo 6.1.0 中半径内的工作方式与以前版本不同
- java - 将数组排列的输出保存到二维数组中
- java - 除了 .isSelected() 是否有任何其他方法来检查单选按钮是否被选中
- php - 该文件未创建 - wkhtmltopdf
- javascript - 带有 React、THREE、Parcel 和 react-three-fiber 的 OBJLoader
- apache-cloudstack - 尝试分配存储时 Cloudstack 启动实例错误
- oauth - JWT:多客户端身份验证服务器,停止在不同客户端之间使用 jwt?