2017-03-04 89 views
0

我有一個查詢從兩個獨立的表中拉出數據,並使用dense_rank將它們放到第三個表中,作爲將患者索賠行分組在一起的一種方式。我遇到的問題是在第二個查詢中,dense_rank以「1」重新開始,而不是拾取第一個查詢結束的位置。Dense_rank在第二個查詢

select 
    'somenumber'+ right('000000' + cast(dense_rank()OVER(order by o.column1) as varchar(6)),6) AS rank_id 
    ,'Y' as error_flag 
    ,o.column2 
    ,o.column3 
    ,o.column4 
    ,o.column5 
    ,o.column6 
    ,o.column7 
    ,p.column8 
    ,q.column9 
    ,r.column10 
    into #temp_table 

    FROM main_table o 
     LEFT OUTER JOIN some_table p ON o.blah=p.blah 
     LEFT OUTER JOIN another_table q ON o.snooze=q.snooze 
     LEFT OUTER JOIN im_confused r ON o.help_me=r.help_me 

    where o.column11='somenumber' 

難道只是更容易包括其他參加了第二臺,其中DENSE_RANK再次重新開始,或者可以DENSE_RANK被操縱,以拿起一日一離開?

+0

你使用哪個版本的mysql允許使用dense_rank()? – McNets

+0

我很抱歉 - MySQL被偶然添加爲標籤。 –

+0

如果你的查詢足夠大,你能發佈一個最簡單的例子嗎? – McNets

回答

0

剛剛使用臨時表,然後在插入到最終表中後執行dense_rank。解決了這個問題,但問題仍然存在 - 你可以操縱一個dense_rank嗎?

相關問題