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

एसक्यूएल क्वेरी समय के साथ समूह आइटम करने के लिए, लेकिन केवल अगर एक दूसरे के पास?

इसे "द्वीप समस्या" कहा जाता है और मैंने इसे एक समाधान के रूप में देखा है (क्रेडिट इट्ज़िक बेन गण)

select  tool_number,
        min(time) 'in',
        max(time) 'out',
        count(*)
from    (
    select  tool_number,
            time,
            ROW_NUMBER() OVER (ORDER BY time) - ROW_NUMBER() OVER (PARTITION BY Tool_Number ORDER BY time) AS Grp
    from    #temp
    ) as a
group by grp, tool_number
order by min(time)


  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 सर्वर संग्रहीत कार्यविधि से Excel में तालिका

  2. किसी संग्रहीत कार्यविधि में तालिका मान पैरामीटर पास करना

  3. SQL सर्वर ANSI_NULLS समझाया गया

  4. ट्रिगर पुराने मान डालें- वे मान जो अपडेट किए गए थे

  5. लाखों रिकॉर्ड से डुप्लिकेट पंक्तियों को हटाने का प्रभावी तरीका