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

अभिलेखों के समूह के बीच समय अंतर प्राप्त करें

सीटीई (सामान्य तालिका भाव ) एक विशेष अस्थायी तालिका की तरह इस्तेमाल किया जा सकता है। यह आपको (इस मामले में) गतिशील रूप से एक पंक्ति संख्या बनाने की अनुमति देता है जिसे आप बाद में स्वयं में शामिल होने के लिए बना सकते हैं।

मुझे लगता है कि आप कुछ इस तरह की तलाश कर रहे हैं:

--create temp table
select 19 as id,'2013-08-23 14:52' as activitytime,1 as status
into #temp
union all
select 19,'2013-08-23 14:50',1 union all
select 19,'2013-08-23 14:45',2 union all
select 19,'2013-08-23 14:35',2 union all
select 19,'2013-08-23 14:32',1 union all
select 19,'2013-08-23 14:30',1 union all
select 19,'2013-08-23 14:25',2 union all
select 19,'2013-08-23 14:22',2 union all
select 53,'2013-08-23 14:59',1 union all
select 53,'2013-08-23 14:56',1 union all
select 53,'2013-08-23 14:57',1 union all
select 53,'2013-08-23 14:52',2 union all
select 53,'2013-08-23 14:50',2 union all
select 53,'2013-08-23 14:49',2 union all
select 53,'2013-08-23 14:18',2 union all
select 53,'2013-08-23 14:30',1

--build cte table
;WITH cte
AS (
SELECT 
    *,
    ROW_NUMBER() OVER (ORDER BY  id, activitytime) AS RowNum
FROM 
    #temp
)

--query cte table, self joining row 1 to row 2 to compare.
SELECT a.id, sum(DATEDIFF(minute,b.ActivityTIme,a.ActivityTime)) as TotalTime
FROM 
 cte AS A
 LEFT OUTER JOIN cte AS B   
 ON A.RowNum = B.RowNum + 1 and a.id = b.id
where b.status = 2
group by a.id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका में सम्मिलित करें (आदि) के दौरान प्रत्येक सम्मिलित पंक्ति पर आग लगाने के लिए मैं ट्रिगर कैसे प्राप्त कर सकता हूं * तालिका 2 से चुनें?

  2. SQL सर्वर (T-SQL) में तालिका के लिए विभाजन जानकारी प्राप्त करने के 2 तरीके

  3. SQL सर्वर में किसी दिए गए कैरेक्टर के लिए यूनिकोड मान कैसे लौटाएं - UNICODE ()

  4. SQL सर्वर में OBJECTPROPERTY () का उपयोग करके जांचें कि क्या कोई ऑब्जेक्ट एक संग्रहीत प्रक्रिया है

  5. SQL सर्वर SP - IN सरणी सूची के लिए पैरामीटर पास करें?