2016-08-04 7 views
1

次の表があります。SQL数の異なる行

Date Direction Market Time 
    10/17/2016 SB GRUJFK 22:05:00 
    10/18/2016 SB GRUJFK 22:05:00 
    10/19/2016 SB GRUJFK 22:05:00 
    10/20/2016 SB GRUJFK 22:05:00 
    10/21/2016 SB GRUJFK 22:05:00 
    10/23/2016 SB GRUJFK 23:20:00 
    10/23/2016 SB GRUJFK 22:30:00 
    10/24/2016 SB GRUJFK 22:30:00 
    10/25/2016 SB GRUJFK 22:30:00 
    10/26/2016 SB GRUJFK 22:30:00 
    10/27/2016 SB GRUJFK 22:30:00 
    10/28/2016 SB GRUJFK 22:30:00 

I、この場合にそう

Date Direction Market Time Count 
10/17/2016 SB GRUJFK 22:05:00 1 
10/18/2016 SB GRUJFK 22:05:00 1 
10/19/2016 SB GRUJFK 22:05:00 1 
10/20/2016 SB GRUJFK 22:05:00 1 
10/21/2016 SB GRUJFK 22:05:00 1 
10/23/2016 SB GRUJFK 23:20:00 1 
10/23/2016 SB GRUJFK 22:30:00 2 
10/23/2016 SB GRUJFK 23:30:00 3 
10/25/2016 SB GRUJFK 22:30:00 1 
10/26/2016 SB GRUJFK 22:30:00 1 
10/27/2016 SB GRUJFK 22:30:00 1 
10/28/2016 SB GRUJFK 22:30:00 1 

(1..nのからの)異なる列に異なる行のカウントが、繰り返し行に番号を順次割り当てることのみ10/23を希望/ 2016には3つの異なる値があります。だから、

Date Direction Market Time Count 
10/17/2016 SB GRUJFK 22:05:00 1 
10/18/2016 SB GRUJFK 22:05:00 1 
10/19/2016 SB GRUJFK 22:05:00 1 
10/20/2016 SB GRUJFK 22:05:00 1 
10/21/2016 SB GRUJFK 22:05:00 1 
10/23/2016 SB GRUJFK 23:20:00 3 
10/23/2016 SB GRUJFK 22:30:00 3 
10/23/2016 SB GRUJFK 23:30:00 3 
10/25/2016 SB GRUJFK 22:30:00 1 
10/26/2016 SB GRUJFK 22:30:00 1 
10/27/2016 SB GRUJFK 22:30:00 1 
10/28/2016 SB GRUJFK 22:30:00 1 

任意のアイデアを取得するなど、最初に出現した、第二の2に1を割り当てる

は、私は次の

select 
     departureDate, 
DIRECTION, LEG, SCHD_LEG_DEP_TM, count(SCHD_LEG_DEP_TM) over (partition by departureDate) 
from table3mirs mirs 
     INNER JOIN sys_calendar.calendar 
     ON calendar_date = mirs.departureDate 

where leg='GRUJFK' 
group by 1,2,3,4 

けどを試してみましたか?ご協力いただきありがとうございます!

答えて

1

MSSQLを使用している場合(あなたがパーティションを与えられている可能性があります)、これを試すことができます。あなただけのROW_NUMBERを必要としているようにあなたは、ウィンドウ関数で個別のカウントを使用することはできません私の知る限り

select 
     departureDate, 
DIRECTION, LEG, SCHD_LEG_DEP_TM, count(DISTINCT SCHD_LEG_DEP_TM) over (partition by departureDate) 
from table3mirs mirs 
     INNER JOIN sys_calendar.calendar 
     ON calendar_date = mirs.departureDate 

where leg='GRUJFK' 
group by 1,2,3,4 
+1

を探します。 http://dba.stackexchange.com/questions/89031/using-distinct-in-window-function-withover – vercelli

0

は...

SELECT departureDate , 
     DIRECTION , 
     LEG , 
     SCHD_LEG_DEP_TM , 
     ROW_NUMBER() OVER (PARTITION BY departureDate ORDER BY SCHD_LEG_DEP_TM) 
FROM table3mirs mirs 
     INNER JOIN sys_calendar.calendar ON calendar_date = mirs.departureDate 
WHERE leg = 'GRUJFK' 
GROUP BY 1 , 
     2 , 
     3 , 
     4 
関連する問題