2017-03-09 1 views
0

Ich erhalte:Wie kann ich die Rangfunktion verwenden, ohne tatsächlich den Rang anzuzeigen?

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 

Aber ich möchte bekommen:

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 

I Rang Funktion bin mit wie:

select year, month, day, shares_traded,num_trades, dollar_volume, rank() over (partition by year, month order by day asc) "rank" from nyse; 

I Rang Funktion nutzen wollen, aber ich don‘ Ich will Rank erscheinen. Gibt es einen Weg?

Antwort

2

Verwenden einer Unterabfrage:

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. 
+0

Ihre Lösung nicht Tag aufsteigend bestellen. Auch es wiederholt sich von Monat 1 bis 12 und immer wieder anstatt Gruppierung als alle Monat 1 zuerst dann Monat 2 und 3 und so weiter. –

+0

@MTO http://pastebin.com/1ZxaDLq2 –

+0

@KaliaDona - meinst du nur, du willst nach "Rang" sortieren anstatt mit "WHERE" Rang "= 1" zu filtern? –

2

Angenommen, Sie planen den Rang() zu verwenden, an anderer Stelle, verwenden Sie einen 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" 
+0

ungültige Kennung –

+1

@KaliaDona - JohnHC, dass Fehler behoben ist, aber Gibt es einen Grund, warum Sie einen zitierten Bezeichner verwenden, der das Leben komplizierter macht und einen solchen Fehler irgendwann unvermeidlich macht? –

Verwandte Themen