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

कुछ साझा स्तंभों के आधार पर पहचानकर्ता/काउंटर बनाएं और अन्य स्तंभों के आधार पर अलग करें

विंडो फ़ंक्शन DENSE_RANK() एक OVER() . के साथ खंड:

DECLARE @tbl TABLE(Column1 INT,Column2 INT,Column3 VARCHAR(100));
INSERT INTO @tbl VALUES(1,1,'A')
                      ,(1,2,'A') 
                      ,(1,3,'B') 
                      ,(2,1,'A') 
                      ,(2,2,'A') 
                      ,(2,3,'B') 
                      ,(3,1,'A') 
                      ,(3,2,'B') 
                      ,(3,3,'V');

SELECT *
      ,DENSE_RANK() OVER(PARTITION BY Column1 ORDER BY Column3) AS ComputedColumn
FROM @tbl;

PARTITION BY column1 . में हर नए मान के लिए काउंटर फिर से शुरू करेगा , जबकि ORDER BY रैंकिंग को परिभाषित करता है।

संकेत:चित्र पेस्ट न करें!

अपने अगले प्रश्न के लिए कृपया मेरे उदाहरण का अनुसरण करके अपनी समस्या को पुन:प्रस्तुत करने वाला एक स्टैंडअलोन उदाहरण बनाएं और वह कोड जोड़ें जिसे आपने स्वयं आज़माया है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OpenRowSet और OpenDataSet बिना sysadmin अधिकारों के

  2. क्या हम पहचान कॉलम गिनती को फिर से शुरू करने के लिए DBCC CHECKIDENT का उपयोग करने के बाद मूल स्थिति में वापस आ सकते हैं?

  3. AT TIME ZONE - SQL Server 2016 में एक नई पसंदीदा विशेषता

  4. पंक्ति लॉक कैसे करें?

  5. समान SQL क्वेरी एक ही सर्वर के अंतर्गत किसी अन्य DB की तुलना में एक DB में चलने में अधिक समय लेती है