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

SQL सर्वर 2012 में नंबरिंग द्वीप

अगर आप उन्हें सिर्फ नंबर देना चाहते हैं, तो मैं lag() . का सुझाव दूंगा संचयी राशि के साथ:

select t.*,
       sum(case when datefrom = dateadd(day, 1, prev_dateto
                then 0 else 1
           end) over (order by itemId, datefrom)
from (select t.*,
             lag(dateto) over (partition by itemid order by datefrom) as prev_dateto
      from table t
     ) t;

case निर्धारित करता है कि एक नया द्वीप कहाँ से शुरू होता है। संचयी योग केवल इस ध्वज का योग है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक रिकॉर्ड दिए गए विभिन्न अधिकतम मूल्य के आधार पर अधिकतम मूल्य प्राप्त करने के लिए SQL क्वेरी

  2. SQL सर्वर डेटाबेस (T-SQL उदाहरण) के लिए वर्तमान पंक्ति संस्करण मान कैसे लौटाएं

  3. दिनांक रूपांतरण समस्या MS SQL सर्वर तक पहुँच

  4. संग्रहीत प्रक्रिया पैरामीटर प्राप्त करने के लिए SQL सर्वर 2005 मेटाडेटा खोज

  5. एसक्यूएल घटनाओं की गिनती रखते हुए