Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Sql даты / 7 сообщений из 7, страница 1 из 1
13.09.2020, 17:13
    #39998085
antonkuzmenkov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql даты
Возник вопрос по select

date status name11.08.2020 работает 121.08.2020 не работает 122.08.2020 в процессе 111.09.2020 работает 212.09.2020 не работает 226.09.2020 работает 213.09.2021 не работает 314.09.2021 работает 315.09.2021 работает 316.10.2021 работает 117.10.2021 не работает 2

Подскажите пожалуйста направление. Нужно создать периоды по месяцу, которые показали бы аномалию - изменения статуса >= 3 раз
т.е.
name count(status)
1 3
2 3
...
Рейтинг: 0 / 0
13.09.2020, 17:50
    #39998088
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql даты
Код: sql
1.
select name, count(*) from Таблица group by year(date), month(date) having count(*) >= 3



PS. Не, я догадываюсь, что страдальцу не три статуса нужно, а художественное чередование этих статусов.
Но пущай сам напряжется и скажет внятно.
...
Рейтинг: 0 / 0
13.09.2020, 18:26
    #39998095
antonkuzmenkov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql даты
Спасибо и за это)
авторselect name, year(date), month(date) from quest group by name, year(date), month(date) having count(*) >= 3
name (Отсутствует имя столбца) (Отсутствует имя столбца)1 2020 82 2020 9

Вы правы, мне нужно выявить чередование статусов. Будем напрягать орган.
...
Рейтинг: 0 / 0
13.09.2020, 19:31
    #39998111
PizzaPizza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql даты
показать вот это все с маркерами "аномалий"?

партицирование по месяцу, потом по name, сортировка по status и case lag/lead на повторяющееся значение status/name/месяц?

зы. или должна быть определенная последовательность статусов?
непонятно
...
Рейтинг: 0 / 0
13.09.2020, 19:45
    #39998116
antonkuzmenkov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql даты
PizzaPizza
показать вот это все с маркерами "аномалий"?

партицирование по месяцу, потом по name, сортировка по status и case lag/lead на повторяющееся значение status/name/месяц?

зы. или должна быть определенная последовательность статусов?
непонятно


Мне нужно выявить как в промежутке месяца менялся статус. Т.е. работает, не работает, работает. Или работает, не работает в процессе. Т.е предположим значений больше, делаю дистинкт. Потом создаю месячные промежутки и ищу там >= 3 значений.

Спасибо за направление, буду думать над вашей подсказкой, пока плохо понимаю как это реализовать.
...
Рейтинг: 0 / 0
13.09.2020, 20:57
    #39998129
stdvb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql даты
antonkuzmenkov,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with cte as (
select date, name,
	case when status <> lead(status) over (partition by year(date), month(date), name order by date) then 1 else 0 end change
from A
)
select year(date), month(date), name, sum(change) + 1
from cte
group by year(date), month(date), name
having sum(change) >= 3 - 1;
...
Рейтинг: 0 / 0
13.09.2020, 21:25
    #39998139
antonkuzmenkov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql даты
stdvb
antonkuzmenkov,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with cte as (
select date, name,
	case when status <> lead(status) over (partition by year(date), month(date), name order by date) then 1 else 0 end change
from A
)
select year(date), month(date), name, sum(change) + 1
from cte
group by year(date), month(date), name
having sum(change) >= 3 - 1;


Браво. Благодарю.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Sql даты / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]