powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание групп данных.
6 сообщений из 6, страница 1 из 1
Создание групп данных.
    #38280299
d.guryev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, добрый день,

Нужна ваша помощь.

Имеется некоторый массив данных:

abc0.06951 0.39549 Null0.05038 0.13413 Null0.06817 0.70597 Null0.06927 0.51654 Null0.07230 0.71426 Null0.07486 0.36418 Null0.07601 3.49102 Null0.07427 0.51308 Null0.05880 0.05726 Null

Задача состоит в том, чтобы разделить значения в столбце "b" на группы. Пример: где 0<b<=0.5 с = 1, 0.5<b<=1 c = 2 и т.д. Количество групп может варьироваться, шиксированным же определяется только шаг = 0.5. Возможно ли это сделать как-нибудь красиво, а не через case when и т.п.?
...
Рейтинг: 0 / 0
Создание групп данных.
    #38280315
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d.guryevПример: где 0<b<=0.5 с = 1, 0.5<b<=1 c = 2 и т.д.
Это пример того, что вы хотите получить на экране ?
...
Рейтинг: 0 / 0
Создание групп данных.
    #38280317
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разделить на 0.5
?
...
Рейтинг: 0 / 0
Создание групп данных.
    #38280320
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d.guryev,
Код: sql
1.
select b, floor(b/0.5) from mytable
...
Рейтинг: 0 / 0
Создание групп данных.
    #38280329
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
WITH CTE AS(SELECT * FROM(VALUES
 (0.06951,0.39549)
,(0.05038,0.13413)
,(0.06817,0.70597)
,(0.06927,0.51654)
,(0.07230,0.71426)
,(0.07486,0.36418)
,(0.07601,3.49102)
,(0.07427,0.51308)
,(0.05880,0.05726)
)T(a,b)
)
SELECT *,c=DENSE_RANK()OVER(ORDER BY FLOOR(b/0.5))
FROM CTE
ORDER BY b;
...
Рейтинг: 0 / 0
Создание групп данных.
    #38280419
iap
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
WITH CTE AS(SELECT * FROM(VALUES
 (0.06951,0.39549)
,(0.05038,0.13413)
,(0.06817,0.70597)
,(0.06927,0.51654)
,(0.07230,0.71426)
,(0.07486,0.36418)
,(0.07601,3.49102)
,(0.07427,0.51308)
,(0.05880,0.05726)
)T(a,b)
)
SELECT *,c=DENSE_RANK()OVER(ORDER BY FLOOR(b/0.5))
FROM CTE
ORDER BY b;



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


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