У меня есть следующая таблица
create table Launches (Id int, Name char)
insert into Launches values
(1, 'A'),
(2, 'A'),
(3, 'B'),
(4, 'B'),
(5, 'B'),
(6, 'B'),
(7, 'C'),
(8, 'B'),
(9, 'B')
Результат должен быть
4 - Б
От 3 до 6
Аналогичный вопрос -
Подсчитайте количество последовательных вхождений значений в таблице
Вопрос, на который вы ссылаетесь, говорит вам, как это сделать?
Это не так, потому что он не сообщает, где начинается и заканчивается самая большая последовательная последовательность. В моем реальном случае буква «В» повторяется много раз во многих местах, и без индексов я не могу локализовать самую большую последовательность.
Вы можете вычесть пронумерованное значение для каждого name
, чтобы получить константу для соседних значений, которые одинаковы. Остальное - совокупность:
select top (1) name, count(*), min(id), max(id)
from (select l.*,
row_number() over (partition by name order by id) as seqnum
from #Launches l
) l
group by (id - seqnum), name
order by count(*) desc;
Здесь db<>рабочий пример.
Это отличный сценарий! Однако для меня одинаково важно знать первый и последний индекс - 3 и 6 в этом примере
@Джобс. . . Просто включите это в select
.
Я понятия не имею, как это сделать, правда
@JoeJobs Гордан уже сделал это за вас — проверьте его правки. Тем не менее, похоже, что вы могли бы получить больше пользы от изучения некоторых учебных пособий по SQL и изучения основ, потому что наверняка люди ответят на ваши вопросы здесь, но вы не приобретете навыки, чтобы сделать это самостоятельно.
Спасибо, я не могу отредактировать ответ, это должно быть «Запуски» вместо «#Запуски».
В нем говорится, что я должен изменить как минимум 6 символов, чтобы иметь возможность сохранить его. И да, я проголосовал за ответ. Мне сказали подождать несколько дней, прежде чем я приму ответ, чтобы побудить больше пользователей ответить на вопрос.
«Ой! Ваш ответ не может быть отправлен, потому что: правки должны содержать не менее 6 символов; есть ли что-то еще, что можно улучшить в этом посте?»
@Джобс. . . Я не понимаю. В вопросе используется #Launches
. Код в скрипке немного отличается, но изменить имя таблицы в запросе несложно.
Плохо, я скопировал из другого вопроса, теперь я заменил #Launches на Launches в вопросе. Символ "#" все усложняет, без него лучше. Я просто хотел убедиться, что копирование кода в этой скрипке работает без изменений.
Что вы пробовали? Где ты застрял? Пожалуйста, покажите нам свои исследования и попытки.