आपका प्रश्न थोड़ा भ्रमित करने वाला है। आप कहते हैं कि आप मान सेट करना चाहेंगे b
विभाजन से न्यूनतम मान तक a
वह कॉलम b
के साथ पंक्ति में है, जबकि पंक्तियों में b = 1
. है अछूता रहना चाहिए।
टिप्पणियों के रूप में मैं आपके प्रश्न में जो देख सकता हूं (मुझे लगता है कि यह आपका अपेक्षित आउटपुट है) आप भी न्यूनतम मान प्राप्त करना चाहते हैं जो 1
का अनुसरण करता है एक विभाजन के भीतर - इसलिए आप मूल रूप से b
. का न्यूनतम मान चाहते हैं जो 1
. से बड़ा है ।
नीचे SQL क्वेरी है जो ऐसा करती है
UPDATE t1 alias
SET b = (
SELECT min(b)
FROM t1
WHERE alias.a = t1.a
AND t1.b > 1 -- this would get the minimum value higher than 1
GROUP BY a
)
WHERE alias.b > 1 -- update will not affect rows with b <= 1
अपडेट के बाद आउटपुट
a | b
---+---
1 | 0
1 | 1
2 | 1
2 | 2
3 | 1
3 | 2
3 | 2
4 | 1
4 | 3
4 | 3
4 | 3