mysql - How to get result set like Oracle lag function -
मेरे पास मुझे नीचे की तरह आउटपुट की आवश्यकता है Googling से मुझे लेकिन यह उसी कॉलम में xxx, yyy, zzz जैसे दे देंगे। मैं उपरोक्त प्रारूप कैसे प्राप्त करूं? कृपया मेरी सहायता करें। ठीक है, निम्नलिखित पर विचार करें ... मुझे इस बात का उल्लेख करना चाहिए कि यह कॉलेशन मैच मानता है (जैसे SET NAMES Utf8;) mysql टेबल है जो संरचना के नीचे है
| कोला | ColB | ColC | + ------------------ + ------ + | ए | Xxx | 40 | | ए | वाई वाई वाई | 40 | | ए | ज़ज़ | 40 | | बी | एबीसी | 50 | | बी | बीसीए | 50 | | सी | टीटीटी | 60 | | सी | एफएफएफ | 60 |
| कोला | ColB | ColC | + ------------------ + ------ + | ए | Xxx | 40 | | | वाई वाई वाई | | | | ज़ज़ | | | बी | एबीसी | 50 | | | बीसीए | | | सी | टीटीटी | 60 | | | एफएफएफ | |
Group_Concat फ़ंक्शन मिलता है।
ड्रॉप तालिका यदि मौजूदा एबीसी; टेबल एबीसी बनाएं (आईडी INT नहीं NULL AUTO_INCREMENT प्राथमिक कुंजी, कोला चार्द (1) नहीं, कॉलब सीआर (3) नल, ColC INT नहीं है); एबीसी (कोला, कोल्ब, कोल सी) मूल्यों में INSERT ('ए', 'xxx', 40), ('ए', 'वाई वाई वाई', 40), ('ए', 'जेज़', 40), ('बी ('सी', 'टीटीटी', 60), ('सी', 'एफएफएफ', 60); एबीसी से चयन करें; + ---- + ------ + ------ + ------ + | आईडी | कोला | ColB | ColC | + ---- + ------ + ------ + ------ + | 1 | ए | Xxx | 40 | | 2 | ए | वाई वाई वाई | 40 | | 3 | ए | ज़ज़ | 40 | | 4 | बी | एबीसी | 50 | | 5 | बी | बीसीए | 50 | | 6 | सी | टीटीटी | 60 | | 7 | सी | एफएफएफ | 60 | + ---- + ------ + ------ + ------ + SELECT id, a, b, c fROM (SELECT id, CASE जब कोला = @prev_a THR @curr_a: = '' शेष @curr_a: = कोला एक, @prev_a END: = कोला, मामला है जब ColB = @prev_b तो @curr_b: = '' शेष @curr_b: = ColB अंत ख, @prev_b: = ColB, मामला है जब ColC = @prev_c तो @curr_c: = '' शेष @curr_c: = ColC अंत ग, @prev_c: = ColC एबीसी से, (@curr_a का चयन करें = '', @prev_a = '', @curr_b = '', @prev_b = ' ', @curr_c =' ', @prev_c =' ') आईडी के द्वारा वार्स आदेश) आईडी के द्वारा आदेश; + ---- + ------ + ------ + ------ + | आईडी | एक | बी | सी | + ---- + ------ + ------ + ------ + | 1 | ए | Xxx | 40 | | 2 | | वाई वाई वाई | | | 3 | | ज़ज़ | | | 4 | बी | एबीसी | 50 | | 5 | | बीसीए | | | 6 | सी | टीटीटी | 60 | | 7 | | एफएफएफ | | + ---- + ------ + ------ + ------ +
Comments
Post a Comment