Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 16

Последовательность чисел

30.08.2023, 16:59. Показов 816. Ответов 7

Студворк — интернет-сервис помощи студентам
Всем привет. Хорошего настроения и успехов.
Пишу потому что уже сломал голову(((

Задача вроде в голове легко строится, а в SQL перенести не могу что-то(((
Очень нужна помощь.

Есть таблица (только 1 таблица) пусть будет table1.
В ней есть 2 поля:
1. FIO
2. ARTIKUL

Таблица несёт в себе допустим такие данные:
Петров П.П. - 4
Петров П.П. - 5
Петров П.П. - 6
Петров П.П. - 6
Петров П.П. - 7
Сидоров С.С. - 1
Сидоров С.С. - 3
Сидоров С.С. - 7
Иванов И.И. - 8
Иванов И.И. - 7
Иванов И.И. - 9
Иванов И.И. - 1

Итог нужен следующий. Нужно вывести только те строки у который последовательность чисел с разницей в единицу длится 3 и более раза.
То есть:
Петров П.П. - 4
Петров П.П. - 5
Петров П.П. - 6
Петров П.П. - 6
Петров П.П. - 7
Иванов И.И. - 8
Иванов И.И. - 7
Иванов И.И. - 9

Вообще идей нет. Наткнулся на rank, но вообще не в понял чем он мне может помочь.
Может для кого то глупая задача. Но очень нужно решение(((
Спасибо всем кто хоть что то подскажет. Было бы прекрасно конечно пример если кто даст как это в SQL реализовать.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.08.2023, 16:59
Ответы с готовыми решениями:

Последовательность чисел
Есть задача, нет идеи, прошу помощи! Задача - есть минимальное значение числа, есть максимальное значение числа, задача проверить...

Проверка последовательность чисел
Всех приветствую! Во-первых благодарю за помощь позавчера! Не могу проверить неразрывность числового ряда. Например 1; 2; 3; 4;...

Как изменить последовательность целых чисел запросом?
Здравствуйте, стоит такая задача. Таблица вида: field1 2 4 6 5 6 7 необходимо, чтобы последовательность в строках была

7
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
30.08.2023, 18:55
А что такое последовательность чисел с разницей в единицу делится три и более? Вроде слова русские а смысл даже не турецкий))
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
30.08.2023, 19:22
Что определяет порядок этих чисел? 8, 7, 9, 1 - это что такое вообще?
0
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 16
30.08.2023, 23:41  [ТС]
Артикул товара который купил данный человек.
Первоначально цифры в целом могут быть в перемешку, но если отсортировать то получится допустим 1,7,8,9. И нужно отобразить строки с Артикулами 7,8,9 с ФИО.
Артикул своего рода тут как ID играет роль.

Добавлено через 2 минуты
Цитата Сообщение от Аватар Посмотреть сообщение
А что такое последовательность чисел с разницей в единицу делится три и более? Вроде слова русские а смысл даже не турецкий))
Последовательность чисел с разницей в единицу это обычный счет чисел. 1,2,3,4,5,6,7,8,9,10
1 и 2 разница в единицу.
2 и 3 разница в единицу.
и т.д.
0
5987 / 4562 / 1096
Регистрация: 29.08.2013
Сообщений: 28,202
Записей в блоге: 3
31.08.2023, 10:20
Stranger911,
а даты нет?

как точно узнать порядок следования ФИО и артикулов?
без сортировки это гадание
0
1306 / 360 / 98
Регистрация: 14.10.2022
Сообщений: 1,103
31.08.2023, 13:13
Цитата Сообщение от Stranger911 Посмотреть сообщение
Итог нужен следующий. Нужно вывести только те строки у который последовательность чисел с разницей в единицу длится 3 и более раза.
То есть:
Петров П.П. - 4
Петров П.П. - 5
Петров П.П. - 6
Петров П.П. - 6
Петров П.П. - 7
Иванов И.И. - 8
Иванов И.И. - 7
Иванов И.И. - 9
А почему вот тут не так:

Иванов И.И. - 8
Иванов И.И. - 7
Иванов И.И. - 9
Иванов И.И. - 1

?
0
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 16
31.08.2023, 17:49  [ТС]
Цитата Сообщение от uaggster Посмотреть сообщение
А почему вот тут не так:
Иванов И.И. - 8
Иванов И.И. - 7
Иванов И.И. - 9
Иванов И.И. - 1
?
Потому что при сортировки по числам мы получаем

Иванов И.И. - 1
Иванов И.И. - 7
Иванов И.И. - 8
Иванов И.И. - 9

Разница между 1 и 7, 6.
А нам надо вывести позиции по ФИО с последовательными числами с разницей в 1.
По этому отображаем 7,8,9
0
1306 / 360 / 98
Регистрация: 14.10.2022
Сообщений: 1,103
02.09.2023, 13:42
Лучший ответ Сообщение было отмечено Stranger911 как решение

Решение

Тогда вот тут неверно:
Петров П.П. - 4
Петров П.П. - 5
Петров П.П. - 6
Петров П.П. - 6
Петров П.П. - 7
Должно быть:
Петров П.П. - 4
Петров П.П. - 5
Петров П.П. - 6
?

Добавлено через 40 минут
Впрочем, хозяин - барин, можно и так, как ты хочешь:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Drop table if exists #t
go
Create table #t (FIO varchar(255), ARTIKUL int)
go
insert into #t (FIO, ARTIKUL)
Values
 ('Петров П.П.', 4  )
,('Петров П.П.', 5  )
,('Петров П.П.', 6  )
,('Петров П.П.', 6  )
,('Петров П.П.', 7  )
,('Сидоров С.С.', 1    )
,('Сидоров С.С.', 3    )
,('Сидоров С.С.', 7    )
,('Иванов И.И.', 8  )
,('Иванов И.И.', 7  )
,('Иванов И.И.', 9  )
,('Иванов И.И.', 1  )
go
 
;WITH s
AS (
    SELECT *
        --,DENSE_RANK() over (partition by FIO order by ARTIKUL ASC) N
        ,CASE 
            WHEN ARTIKUL - LAG(ARTIKUL, 1, ARTIKUL) OVER (PARTITION BY FIO ORDER BY ARTIKUL ASC) < 2 THEN 0
            ELSE 1
            END LA
    FROM #t a
    )
    ,ss
AS (
    SELECT *
        ,Sum(LA) OVER (PARTITION BY FIO ORDER BY ARTIKUL ASC) NN
    FROM s
    )
SELECT a.FIO, a.ARTIKUL
FROM ss a
INNER JOIN (SELECT FIO, NN
    FROM ss
    GROUP BY FIO, NN
    HAVING Count(*) >= 3
    ) b ON a.FIO = b.FIO
    AND a.NN = b.NN
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.09.2023, 13:42
Помогаю со студенческими работами здесь

Дана последовательность натуралных чисел a1,а2,аn. создать массив из четных чисел этой последовательность. если таких чисел нет то вывести сообщение о
Дана последовательность натуралных чисел a1,а2,аn. создать массив из четных чисел этой последовательность. если таких чисел нет то вывести...

Последовательность получена из n целых чисел из интервала от 0 до 66. Определить, можно ли считать эту последовательность чисел рядом костей домино
Последовательность получена из n целых чисел из интервала от 0 до 66. Определить, можно ли считать эту последовательность чисел рядом...

Дана непустая последовательность вещественных чисел, оканчиваю¬щаяся числом 1000. Последовательность является неубывающей. Не¬сколько чисел, идущи
Дана непустая последовательность вещественных чисел, оканчиваю¬щаяся числом 1000. Последовательность является неубывающей. Не¬сколько...

Анализ тренировочных данных для чатбота (последовательность чисел в последовательность чисел)
Здравствуйте. Мне не приходилось раньше иметь дело с подобными пакетами, и я не нашел решения моей задачи. А задача такая: есть...

Ввести последовательность и N целых чисел. Сохранить последовательность в файле. Отсортировать последователь
Ввести последовательность и N целых чисел. Сохранить последовательность в файле. Отсортировать последовательность методом выбора. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru