@frmax
человек

Как посчитать дыры?

добрый день,

задачка чтоб размять мозг.
есть табличка
d
---
1
2
3
5
6
7
10
11
15
21

надо посчитать сколько дыр будет,а именно (4) - покажу где

d
---
1
2
3
-----------
5
6
7
-----------
10
11
-----------
15
-----------
21

нужно написать запрос
  • Вопрос задан
  • 364 просмотра
Пригласить эксперта
Ответы на вопрос 2
@SharuPoNemnogu
не язык плохой, программисты такие...
SELECT count(
  CASE WHEN NOT exists(
    SELECT null FROM table t2 WHERE t2.d = t1.d + 1
  ) THEN 1 END
) - 1
FROM table t1;

SELECT count(t1.d) - 1
FROM table t1
LEFT JOIN table t2 ON t2.d = t1.d + 1
WHERE t2.d IS NULL;
Ответ написан
Комментировать
@frmax Автор вопроса
человек
select sum(1)-1 from tt t1 where not exists (select * from tt where id - 1 = t1.id);
свое решение тоже дам
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы