Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ग्रुप बाय के साथ अपडेट करें

आपका प्रश्न थोड़ा भ्रमित करने वाला है। आप कहते हैं कि आप मान सेट करना चाहेंगे 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hibernate.jdbc.fetch_size या @QueryHints(@javax.persistence.QueryHint(name=org.hibernate.fetchSize, value=10)) काम नहीं कर रहा है

  2. उद्धरणों के साथ SQL कथन कैसे लिखें?

  3. c++ प्रोग्राम को Oracle के साथ जोड़ना

  4. पीएल एसक्यूएल में बड़े टेक्स्ट/सीएसवी फाइल को कई फाइलों में विभाजित करें

  5. ORA-00054:निर्दिष्ट NOWAIT के साथ संसाधन व्यस्त और अधिग्रहण