我有一个问题:
- 列出每年的最大销售额?
我认为我有起始查询,但我无法弄清楚如何在我的答案中获得所有这些年:
SELECT TO_CHAR(stockdate,'YYYY') AS year, sales
FROM sample_newbooks
WHERE sales = (SELECT MAX(sales) FROM sample_newbooks);
此查询为我提供了最大销售额的年份。我需要每年最大销量。谢谢你的帮助!
答案 0 :(得分:0)
如果您需要的是年度年度和最高销售额,请使用group by
和max
。
select
to_char(stockdate, 'yyyy') year,
max(sales) sales
from sample_newbooks
group by to_char(stockdate, 'yyyy')
如果您需要包含年度最大销售额的所有列的行,您可以使用窗口函数row_number:
select
*
from (
select
t.*,
row_number() over (partition by to_char(stockdate, 'yyyy') order by sales desc) rn
from sample_newbooks t
) t where rn = 1;
如果您想获得与销售有关系的行,请使用rank
:
select
*
from (
select
t.*,
rank() over (partition by to_char(stockdate, 'yyyy') order by sales desc) rn
from sample_newbooks t
) t where rn = 1;