मेरे पास AccountId, AgreementId में दो कॉलम हैं।

enter image description here

मैं एक और कॉलम चाहता हूं जहां पहली दो पंक्तियां 5552 के रूप में 1 लौटाएं, उसी अनुबंध आईडी के खिलाफ पहला खाता आईडी है .... अगली पंक्तियां 2 वापस आ जाएंगी, यह दूसरा किराया खाता है।

कृपया कोई विचार मैं यह कैसे करूँगा?

0
ikilledbill 9 मई 2018, 12:35

2 जवाब

सबसे बढ़िया उत्तर

dense_rank() का प्रयोग करें:

select *,
       dense_rank() over (order by AccountId, AgreementId) Seq
from table t;
2
Yogesh Sharma 9 मई 2018, 12:41

आप शायद यहां DENSE_RANK चाहते हैं:

SELECT
    AccountId,
    AgreementId,
    DENSE_RANK() OVER (PARTITION BY AgreementId ORDER BY AccountId) dr
FROM yourTable;

समझौते द्वारा विभाजन का अर्थ है कि प्रत्येक अलग समझौते के लिए नंबरिंग रीसेट हो जाएगी। एक समझौते के तहत, हम सघन रैंक का आदेश देने के लिए खाता आईडी का उपयोग करते हैं।

2
Tim Biegeleisen 9 मई 2018, 12:41