el sig query saca lo que necesitas:
Código SQL:
Ver originalCREATE TABLE #temp
(
id INT,
lugar VARCHAR(20),
inicio datetime,
fin datetime
)
INSERT INTO #temp VALUES (1,'a','2012-07-12 00:00:31.000','2012-07-12 00:00:47.000')
INSERT INTO #temp VALUES (1,'b','2012-07-12 00:00:47.000', '2012-07-12 00:01:13.000')
INSERT INTO #temp VALUES (1,'b','2012-07-12 00:01:13.000', '2012-07-12 00:01:15.000')
INSERT INTO #temp VALUES (1,'a','2012-07-12 00:01:15.000', '2012-07-12 00:01:16.000')
INSERT INTO #temp VALUES (1,'a','2012-07-12 00:01:16.000', '2012-07-12 00:01:17.000')
SELECT COUNT(lugar) cuantos, lugar FROM (
SELECT ntile(2) OVER(partition BY lugar ORDER BY lugar) AS rn, id,inicio,fin, lugar FROM #temp
) t1 WHERE rn=1 GROUP BY lugar
Ahora el problema la funcion ntile() necesita un parametro en este caso el 2 (segun tus datos de ejemplo) que va a contar cada par de registros consecutivos como 1 pero si lo pones con 3 entonces no funciona, no tienes mas datos en tu tabla??