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

एसक्यूएल में आसन्न पंक्तियों को मर्ज करें?

यह लेख आपके प्रश्न के कुछ संभावित समाधान प्रदान करता है

http://www.sqlmag.com/blog/puzzled-by-t-sql-blog-15/tsql/solutions-to-packing-date-and-time-intervals-puzzle-136851

यह सबसे सीधे आगे की तरह लगता है:

WITH StartTimes AS
(
  SELECT DISTINCT username, starttime
  FROM dbo.Sessions AS S1
  WHERE NOT EXISTS
    (SELECT * FROM dbo.Sessions AS S2
     WHERE S2.username = S1.username
       AND S2.starttime < S1.starttime
       AND S2.endtime >= S1.starttime)
),
EndTimes AS
(
  SELECT DISTINCT username, endtime
  FROM dbo.Sessions AS S1
  WHERE NOT EXISTS
    (SELECT * FROM dbo.Sessions AS S2
     WHERE S2.username = S1.username
       AND S2.endtime > S1.endtime
       AND S2.starttime <= S1.endtime)
)
SELECT username, starttime,
  (SELECT MIN(endtime) FROM EndTimes AS E
   WHERE E.username = S.username
     AND endtime >= starttime) AS endtime
FROM StartTimes AS S;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2015 में SQL सर्वर डेटा प्लेटफ़ॉर्म अपग्रेड

  2. एसक्यूएल सर्वर:यूनियन के बाद इनर जॉइन धीमी हैश मैच (कुल) की ओर जाता है

  3. पंक्तियों का एक सबसेट चुनना जो कुल मानों के प्रतिशत से अधिक हो

  4. एक ही सर्वर पर एकाधिक डेटाबेस में क्वेरी

  5. SQL क्वेरी क्लाइंट के 1 दिन के अंतराल के लिए औसत मान खींचने के लिए