如何在 ingres/vectorwise 中制作 RANK() 或 ROW_NUMBER() ?发布 sql 代码
How to make RANK() or ROW_NUMBER() in ingres/vectorwise ? issue sql code
我正在编写 sql 查询以获取特定日期不同商店的销售额。
查询是 运行 对 ingres/vectorwise。
我想添加一个列排名,其中有商店在与所有商店进行比较时的销售额排名。
我的select声明如下:
SELECT store_number, sum(sales) as sales
FROM stores_sales_indicators
WHERE day = '2019-07-24'
GROUP BY store_number
我从 sql-server 尝试了不同的东西,但 none 成功了。
我认为这与您所描述的相似(此处未包含任何一天,但您会明白):
declare global temporary table session.stores_sales_indicators
(
store_number integer not null,
sales integer not null
)
on commit preserve rows with norecovery, structure=x100;
insert into session.stores_sales_indicators
values(1,100),(1,200),(2,500),(2,50),(3,50),(3,300);
select
store_number,
sum(sales) as sales,
rank() over (order by sum(sales) desc) as rank
from session.stores_sales_indicators
group by store_number;
另请参阅精美手册,这里是 link 分析函数部分:
https://docs.actian.com/vector/5.1/index.html#page/SQLLang%2FAnalytical_Functions.htm
我正在编写 sql 查询以获取特定日期不同商店的销售额。 查询是 运行 对 ingres/vectorwise。 我想添加一个列排名,其中有商店在与所有商店进行比较时的销售额排名。
我的select声明如下:
SELECT store_number, sum(sales) as sales
FROM stores_sales_indicators
WHERE day = '2019-07-24'
GROUP BY store_number
我从 sql-server 尝试了不同的东西,但 none 成功了。
我认为这与您所描述的相似(此处未包含任何一天,但您会明白):
declare global temporary table session.stores_sales_indicators
(
store_number integer not null,
sales integer not null
)
on commit preserve rows with norecovery, structure=x100;
insert into session.stores_sales_indicators
values(1,100),(1,200),(2,500),(2,50),(3,50),(3,300);
select
store_number,
sum(sales) as sales,
rank() over (order by sum(sales) desc) as rank
from session.stores_sales_indicators
group by store_number;
另请参阅精美手册,这里是 link 分析函数部分: https://docs.actian.com/vector/5.1/index.html#page/SQLLang%2FAnalytical_Functions.htm