如何在不实际显示排名的情况下使用排名功能?
How can I use rank function without actually showing rank?
我得到:
YEAR MONTH DAY SHARES_TRADED NUM_TRADES DOLLAR_VOLUME
---------- ---------- ---------- ------------- ---------- -------------
rank
----------
2010 1 4 1425504460 4628115 3.8495E+10
1
2010 1 5 1754011750 5394016 4.3932E+10
2
2010 1 6 1655507953 5494460 4.3817E+10
3
但我想得到:
YEAR MONTH DAY SHARES_TRADED NUM_TRADES DOLLAR_VOLUME
---------- ---------- ---------- ------------- ---------- -------------
2010 1 4 1425504460 4628115 3.8495E+10
2010 1 5 1754011750 5394016 4.3932E+10
2010 1 6 1655507953 5494460 4.3817E+10
我正在使用排名函数,例如:
select year, month, day, shares_traded,num_trades, dollar_volume, rank() over (partition by year, month order by day asc) "rank" from nyse;
我想使用排名功能,但我不想让排名达到 appear.Is 有什么办法吗?
假设您打算在别处使用 rank(),请使用 CTE
with CTE as
(
select year, month, day, shares_traded,num_trades, dollar_volume, rank() over (partition by year, month order by day asc) "rank" from nyse
)
select year, month, day, shares_traded,num_trades, dollar_volume
from CTE
order by CTE."rank"
使用子查询:
SELECT year,
month,
day,
shares_traded,
num_trades,
dollar_volume
FROM (
select year,
month,
day,
shares_traded,
num_trades,
dollar_volume,
rank() over (partition by year, month order by day asc) "rank"
from nyse
)
WHERE "rank" = 1; -- Or whatever filtering you want to do on rank.
我得到:
YEAR MONTH DAY SHARES_TRADED NUM_TRADES DOLLAR_VOLUME
---------- ---------- ---------- ------------- ---------- -------------
rank
----------
2010 1 4 1425504460 4628115 3.8495E+10
1
2010 1 5 1754011750 5394016 4.3932E+10
2
2010 1 6 1655507953 5494460 4.3817E+10
3
但我想得到:
YEAR MONTH DAY SHARES_TRADED NUM_TRADES DOLLAR_VOLUME
---------- ---------- ---------- ------------- ---------- -------------
2010 1 4 1425504460 4628115 3.8495E+10
2010 1 5 1754011750 5394016 4.3932E+10
2010 1 6 1655507953 5494460 4.3817E+10
我正在使用排名函数,例如:
select year, month, day, shares_traded,num_trades, dollar_volume, rank() over (partition by year, month order by day asc) "rank" from nyse;
我想使用排名功能,但我不想让排名达到 appear.Is 有什么办法吗?
假设您打算在别处使用 rank(),请使用 CTE
with CTE as
(
select year, month, day, shares_traded,num_trades, dollar_volume, rank() over (partition by year, month order by day asc) "rank" from nyse
)
select year, month, day, shares_traded,num_trades, dollar_volume
from CTE
order by CTE."rank"
使用子查询:
SELECT year,
month,
day,
shares_traded,
num_trades,
dollar_volume
FROM (
select year,
month,
day,
shares_traded,
num_trades,
dollar_volume,
rank() over (partition by year, month order by day asc) "rank"
from nyse
)
WHERE "rank" = 1; -- Or whatever filtering you want to do on rank.