Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Интервал с шагом 10  [new]
Antoxa.63
Member

Откуда:
Сообщений: 18
Здравствуйте
Помогите, пожалуйста, в общем проблема в том что, есть столбец в котором есть значения к примеру: 1,20,28,45,72,8,19,37,48,2
И нужно разделить интервалы по 10 шагов т.е. 1-10, 10-20, 20-30 и т.д.
Кто знает подскажите пожалуйста, за ранние спасибо
23 окт 13, 16:56    [15022157]     Ответить | Цитировать Сообщить модератору
 Re: Интервал с шагом 10  [new]
Добрый Э - Эх
Guest
Antoxa.63,

и как на приведенных тобой данных должен выглядеть итоговый результат
23 окт 13, 17:07    [15022214]     Ответить | Цитировать Сообщить модератору
 Re: Интервал с шагом 10  [new]
BuKTaP
Member

Откуда:
Сообщений: 132
Я думал я один ничерта не понял
23 окт 13, 17:13    [15022245]     Ответить | Цитировать Сообщить модератору
 Re: Интервал с шагом 10  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Antoxa.63,

Раздели на 10, округли, умножь обратно.
23 окт 13, 17:19    [15022266]     Ответить | Цитировать Сообщить модератору
 Re: Интервал с шагом 10  [new]
Antoxa.63
Member

Откуда:
Сообщений: 18
Есть значения 100 до 400, т.е. должны создаться диапазоны с шагом 10 т.е. 100-110, 110-120, 120-130 и т.д. и потом все значения которые будут попадать в диапазон будут сумироватся и заносится во временную таблицу. Пример: в столбце есть значения
108,145,120,105,106,113,118,107 значения 108,105,106,107 входят в диапазон 100-110 после этого этого они сумируются 108+105+106+107 = 426 и заносятся во времянную таблицу а точнее значение 426, вот как должно это выглядеть
23 окт 13, 17:24    [15022298]     Ответить | Цитировать Сообщить модератору
 Re: Интервал с шагом 10  [new]
Добрый Э - Эх
Guest
Antoxa.63,

Как-то с границами диапазонов совсем непонятно. Если в наборе данных будет число 10, то при делении на интервалы длиной по 10 значений, куда эту десятку пихать: в интервал 0-10, 10-20 или вообще в оба интервала?
23 окт 13, 17:39    [15022364]     Ответить | Цитировать Сообщить модератору
 Re: Интервал с шагом 10  [new]
Добрый Э - Эх
Guest
НА всяктй случай для затравки...
--
-- Тестовые данные:
with 
  t(num) as 
    (
      select * 
        from (
               values ( 1),
                      (20),
                      (28),
                      (45),
                      (72),
                      ( 8),
                      (19),
                      (37),
                      (48),
                      ( 2)
             )v(n)
    )
--
-- Основной запрос:
select sum(num) as sum_num, count(1) as cnt_num,
       min(num) as min_num, max(num) as max_num       
  from (
         select num, dense_rank() over(order by ceiling(num/10)) as drnk
           from t
       )v
 group by drnk
;

SUM_NUMCNT_NUMMIN_NUMMAX_NUM
11318
1911919
4822028
3713737
9324548
7217272
23 окт 13, 17:55    [15022443]     Ответить | Цитировать Сообщить модератору
 Re: Интервал с шагом 10  [new]
BuKTaP
Member

Откуда:
Сообщений: 132
как-то так?
CREATE TABLE #tab (num INT)
INSERT INTO #tab
(num)
SELECT 108 UNION ALL
SELECT 145 UNION ALL
SELECT 120 UNION ALL
SELECT 105 UNION ALL
SELECT 106 UNION ALL
SELECT 113 UNION ALL
SELECT 118 UNION ALL
SELECT 107
GO
WITH cte (dip_beg, dip_end)
AS
(SELECT ROUND(MIN(t.num)/10,0)*10, ROUND(MIN(t.num)/10,0)*10+10 FROM #tab t
UNION ALL
SELECT c.dip_end, c.dip_end + 10 FROM cte c
WHERE c.dip_end <= 400)


SELECT SUM(t.num) FROM #tab t
JOIN cte c ON t.num >= c.dip_beg AND t.num < c.dip_end
GROUP BY c.dip_beg, c.dip_end
23 окт 13, 18:44    [15022702]     Ответить | Цитировать Сообщить модератору
 Re: Интервал с шагом 10  [new]
Antoxa.63
Member

Откуда:
Сообщений: 18
Спасибо большое
24 окт 13, 11:18    [15024835]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить