Joining Transaction Tables and Populating Null Values in Netezza / PDA

ぐ巨炮叔叔 提交于 2020-01-07 06:35:08

问题


I've got two transaction tables in Netezza set up like the below. When joining the tables on ID and transactionCount, and trying to return Answer, there will be nulls for row 9998, 9996, 9995 etc. How would I return all transactionCount values with the Answer column populated with the last result?

So for example 9998 would return U, 9996 onward would return Y, 9988 would return N, and so on.

  ID    transactionCount  ID    transactionCount    Answer
  1        9999            1         9999             U
  1        9998            1
  1        9997            1         9997             Y
  1        9996            1
  2        9999            2         9999             Y
  2        9998            2        
  2        9997            2
  2        9996            2         9996             N
  2        9995            2         
  3        9999            3         9999             Y
  3        9998            3
  3        9997            3         9997             N
  3        9996            3    
  3        9995            3

Thanks for any help.


回答1:


You didn't specify an RDBMS so I'll just use MySQL.

select transactionCount1, 
(select answer
 from t2
 where transactionCount2 >= t1.transactionCount1
 order by transactionCount2
 limit 1) as answer
from t1
order by 1 desc

Here is a fiddle to show it working: http://sqlfiddle.com/#!2/dde35e/3

EDIT...

In response to a change to the question, the query becomes:

select id1, transactionCount1, 
(select answer
 from t2
 where id2 = id1 and transactionCount2 >= t1.transactionCount1
 order by transactionCount2
 limit 1) as answer
from t1
order by 1 asc, 2 desc

And the sql fiddle is now: http://sqlfiddle.com/#!2/36aacc/1



来源:https://stackoverflow.com/questions/28553040/joining-transaction-tables-and-populating-null-values-in-netezza-pda

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!