你的老板想要查看每年最后一个季度的数据。所有年份都将被选中。执行以下查询,但只选择每年最后3个月的数据,这是我到目前为止的代码,但是我很难选择每年的最后3个月:
SELECT Extract(YEAR from orderdate) as year,
Extract(MONTH from orderdate) as month,
COUNT(*) as numorders, COUNT(DISTINCT customerid) as numcust,
SUM(totalprice) as totspend,
SUM(totalprice)*1.0/COUNT(*) as avgordersize,
SUM(totalprice)*1.0/COUNT(DISTINCT customerid) as avgcustorder
FROM dw.orders o
GROUP BY Extract(YEAR from orderdate),
Extract(MONTH from orderdate)
ORDER BY 1, 2;
答案 0 :(得分:1)
您需要减少返回的行数,这意味着您需要WHERE
子句。您还需要将日期转换为代表其季度的值,或者从该日期开始的第四季度。我推荐前者:
where to_char(orderdate,'Q') = '4'
答案 1 :(得分:0)
除了@Allen的回答你也可以使用像WHERE Extract(MONTH from orderdate) IN (10,11,12)
之类的东西来保持语法/逻辑与你现有的东西相似。