Гость
Map
Форумы [новые:4] / SQL [закрыт для гостей] / Задачи с собеседования для базоёбов. / 364 сообщений из 364, показаны все 15 страниц
07.09.2022, 14:32
    #140514
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Ну для разминки и срача ))))
Кому то интересно что то решить, кому то просраться ))))
Недеюсь Сириус покажет мастер класс - и базоёбы поймут наконец-то что зря им платят зп ))))

Начнём?
...
Рейтинг: 0 / 0
07.09.2022, 14:32
    #140515
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Задача "посчитать и вывести запросом сумму цифр в каждом поле". Уровень ну наверное мидл, хотя если джун будет такие решать еще лучше.

Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр.
Пример

num res
1234 10
9999 36
...
Рейтинг: 0 / 0
07.09.2022, 15:12
    #140532
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Лезут всякие с зп полляма а сириус тепереь скажет что это задачка фуфло он бы ее за пять иинут сделал
...
Рейтинг: 1 / 0
Нравится: PaNik
07.09.2022, 15:20
    #140540
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Барсук-копатель  07.09.2022, 14:58
[игнорируется]
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
Задача "посчитать и вывести запросом сумму цифр в каждом поле". Уровень ну наверное мидл, хотя если джун будет такие решать еще лучше.

Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр.
Пример

num res
1234 10
9999 36
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare @t table (num numeric(38, 0) not null);
insert @t values (1234), (9999), (5992323455), (5609022888558), (0);

declare @num table (num int not null);
insert @num
  select top (1000)
    row_number() over (order by o.object_id)
  from sys.objects o;

select
  t.num
  , sum(convert(int, substring(convert(varchar(100), t.num), num.num, 1)))
from @t t
cross join @num num
where
  num.num <= len(convert(varchar(100), t.num))
  and t.num >= 0
group by
  t.num ;
Да базоёбы обычно такое и городят ))))))))))
Спойлер
сравни - план и время выполнения (ну время оценить нужно побольше данных):
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select
  num,
  (len(num)-len(replace(num,'9','')))*9+
  (len(num)-len(replace(num,'8','')))*8+
  (len(num)-len(replace(num,'7','')))*7+
  (len(num)-len(replace(num,'6','')))*6+
  (len(num)-len(replace(num,'5','')))*5+
  (len(num)-len(replace(num,'4','')))*4+
  (len(num)-len(replace(num,'3','')))*3+
  (len(num)-len(replace(num,'2','')))*2+
  (len(num)-len(replace(num,'1','')))*1
from @t
...
Рейтинг: 0 / 0
07.09.2022, 15:59
    #140597
Гарыныч
Участник
[игнорирует гостей кроме]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  07.09.2022, 15:20
[игнорируется]
Барсук-копатель  07.09.2022, 14:58
[игнорируется]
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
Задача "посчитать и вывести запросом сумму цифр в каждом поле". Уровень ну наверное мидл, хотя если джун будет такие решать еще лучше.

Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр.
Пример

num res
1234 10
9999 36
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare @t table (num numeric(38, 0) not null);
insert @t values (1234), (9999), (5992323455), (5609022888558), (0);

declare @num table (num int not null);
insert @num
  select top (1000)
    row_number() over (order by o.object_id)
  from sys.objects o;

select
  t.num
  , sum(convert(int, substring(convert(varchar(100), t.num), num.num, 1)))
from @t t
cross join @num num
where
  num.num <= len(convert(varchar(100), t.num))
  and t.num >= 0
group by
  t.num ;
Да базоёбы обычно такое и городят ))))))))))
Спойлер
сравни - план и время выполнения (ну время оценить нужно побольше данных):
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select
  num,
  (len(num)-len(replace(num,'9','')))*9+
  (len(num)-len(replace(num,'8','')))*8+
  (len(num)-len(replace(num,'7','')))*7+
  (len(num)-len(replace(num,'6','')))*6+
  (len(num)-len(replace(num,'5','')))*5+
  (len(num)-len(replace(num,'4','')))*4+
  (len(num)-len(replace(num,'3','')))*3+
  (len(num)-len(replace(num,'2','')))*2+
  (len(num)-len(replace(num,'1','')))*1
from @t
куясе, а так можно было?
...
дед-пердед
Рейтинг: 0 / 0
07.09.2022, 16:00
    #140598
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр.
Пример

num res
1234 10
9999 36
ты же понимаешь что

1. сама задача тупость неибическая

2. если кто-то задумает эту тупость воплотить в жизнь, то сделают про це дуру
...
Рейтинг: 0 / 0
07.09.2022, 16:03
    #140603
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
или это просто на знание существования кроссджойна?
...
Рейтинг: 0 / 0
07.09.2022, 16:03
    #140607
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Или так[:smile]
Код: 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.
CREATE FUNCTION `test_sum`(`_num` INT)
  RETURNS INT
  LANGUAGE SQL
  NOT DETERMINISTIC
  CONTAINS SQL
  SQL SECURITY DEFINER
  COMMENT ''
BEGIN
  DECLARE _res INT DEFAULT 0;
  DECLARE _len INT DEFAULT 0;

  SET _len = LENGTH(_num);

  WHILE _len >= 1 DO
    SET _res =_res + SUBSTRING(_num, _len, 1);
    SET _len = _len - 1;
  END WHILE;

  RETURN _res;
END

CREATE TABLE `ttt` (
  `num` INT(11) NULL DEFAULT NULL
)
COMMENT='test'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

INSERT INTO `db`.`ttt` (`num`) VALUES (1234);
INSERT INTO `db`.`ttt` (`num`) VALUES (9999);

SELECT num, test_sum(num) AS summ FROM ttt;
...
Рейтинг: 1 / 0
Нравится: eNose
07.09.2022, 16:07
    #140610
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 16:03
[игнорируется]
Или так[:smile]
Код: 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.
CREATE FUNCTION `test_sum`(`_num` INT)
  RETURNS INT
  LANGUAGE SQL
  NOT DETERMINISTIC
  CONTAINS SQL
  SQL SECURITY DEFINER
  COMMENT ''
BEGIN
  DECLARE _res INT DEFAULT 0;
  DECLARE _len INT DEFAULT 0;

  SET _len = LENGTH(_num);

  WHILE _len >= 1 DO
    SET _res =_res + SUBSTRING(_num, _len, 1);
    SET _len = _len - 1;
  END WHILE;

  RETURN _res;
END

CREATE TABLE `ttt` (
  `num` INT(11) NULL DEFAULT NULL
)
COMMENT='test'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

INSERT INTO `db`.`ttt` (`num`) VALUES (1234);
INSERT INTO `db`.`ttt` (`num`) VALUES (9999);

SELECT num, test_sum(num) AS summ FROM ttt;
вот, в верном направлении мыслит товарищ
...
Рейтинг: 0 / 0
07.09.2022, 16:09
    #140612
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
...
Рейтинг: 0 / 0
07.09.2022, 16:11
    #140615
Пулькин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Въеби им Сириус базоебам обоссаным [:grin]
...
Рейтинг: 1 / 0
Нравится: PaNik
07.09.2022, 16:16
    #140619
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Пулькин  07.09.2022, 16:11
[игнорируется]
Въеби им Сириус базоебам обоссаным [:grin]
да!

переписывай свою хуйню.

сабстринги убирай нахуй.

юзай деление и вычитание.
...
Рейтинг: 0 / 0
07.09.2022, 16:17
    #140623
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
...
Рейтинг: 0 / 0
07.09.2022, 16:19
    #140624
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
В ТЗ было запросом а не функцией ))) и пара решений уже озвучена
...
Рейтинг: 0 / 0
07.09.2022, 16:20
    #140625
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
num res
1234 10

1234/1000 -> 1
(1234 - 1*1000)/100 -> 2
(1234 - 1*1000 - 2*100)/10 -> 3
(1234 - 1*1000 - 2*100 - 3*10)/1 -> 4
...
Рейтинг: 0 / 0
07.09.2022, 16:20
    #140626
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
А где вы все были в теме про лоховской запрос нуба, то есть меня, по дедофоруму?
...
Рейтинг: 0 / 0
07.09.2022, 16:20
    #140627
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  07.09.2022, 16:19
[игнорируется]
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
В ТЗ было запросом а не функцией ))) и пара решений уже озвучена
Так я запросом и вывел)
...
Рейтинг: 0 / 0
07.09.2022, 16:20
    #140628
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  07.09.2022, 16:20
[игнорируется]
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
num res
1234 10

1234/1000 -> 1
(1234 - 1*1000)/100 -> 2
(1234 - 1*1000 - 2*100)/10 -> 3
(1234 - 1*1000 - 2*100 - 3*10)/1 -> 4
то есть те же яйца, только математикой
...
Рейтинг: 0 / 0
07.09.2022, 16:23
    #140635
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
basename  07.09.2022, 16:20
[игнорируется]
А где вы все были в теме про лоховской запрос нуба, то есть меня, по дедофоруму?
Один кот2 разобрался

Господа базоёбы, скок сюды
...
Рейтинг: 0 / 0
07.09.2022, 16:23
    #140637
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
basename  07.09.2022, 16:20
[игнорируется]
А где вы все были в теме про лоховской запрос нуба, то есть меня, по дедофоруму?
Так не круглые сутки же здесь )
Ну и профильные форумы не читаем - нах они? когда есть ПТ
...
Рейтинг: 1 / 0
Нравится: eNose
07.09.2022, 16:23
    #140639
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  07.09.2022, 16:20
[игнорируется]
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
num res
1234 10

1234/1000 -> 1
(1234 - 1*1000)/100 -> 2
(1234 - 1*1000 - 2*100)/10 -> 3
(1234 - 1*1000 - 2*100 - 3*10)/1 -> 4
Чото заморочено, у меня тупа, быстро и работает чотко!)
...
Рейтинг: 0 / 0
07.09.2022, 16:24
    #140640
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 16:23
[игнорируется]
eNose  07.09.2022, 16:20
[игнорируется]
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
num res
1234 10

1234/1000 -> 1
(1234 - 1*1000)/100 -> 2
(1234 - 1*1000 - 2*100)/10 -> 3
(1234 - 1*1000 - 2*100 - 3*10)/1 -> 4
Чото заморочено, у меня тупа, быстро и работает чотко!)
"строки" и "быстро" - это миф
...
Рейтинг: 0 / 0
07.09.2022, 16:26
    #140643
basename
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  07.09.2022, 16:23
[игнорируется]
basename  07.09.2022, 16:20
[игнорируется]
А где вы все были в теме про лоховской запрос нуба, то есть меня, по дедофоруму?
Так не круглые сутки же здесь )
Ну и профильные форумы не читаем - нах они? когда есть ПТ
Тогда это гавно было в пт
...
Рейтинг: 0 / 0
07.09.2022, 16:27
    #140645
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  07.09.2022, 16:24
[игнорируется]
Redd  07.09.2022, 16:23
[игнорируется]
eNose  07.09.2022, 16:20
[игнорируется]
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
...
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
num res
1234 10

1234/1000 -> 1
(1234 - 1*1000)/100 -> 2
(1234 - 1*1000 - 2*100)/10 -> 3
(1234 - 1*1000 - 2*100 - 3*10)/1 -> 4
Чото заморочено, у меня тупа, быстро и работает чотко!)
"строки" и "быстро" - это миф
Согласен, но у тебя куча доп. действий и округления
...
Рейтинг: 0 / 0
07.09.2022, 16:29
    #140646
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  07.09.2022, 16:16
[игнорируется]
Пулькин  07.09.2022, 16:11
[игнорируется]
Въеби им Сириус базоебам обоссаным [:grin]
да!

переписывай свою хуйню.

сабстринги убирай нахуй.

юзай деление и вычитание.
Если уж на то пошло, то
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
или даже строка varchar(max) пох.
ЗЫ но тогда проверку надо на число реализовывать
...
Рейтинг: 0 / 0
07.09.2022, 16:30
    #140648
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  07.09.2022, 16:29
[игнорируется]
eNose  07.09.2022, 16:16
[игнорируется]
Пулькин  07.09.2022, 16:11
[игнорируется]
Въеби им Сириус базоебам обоссаным [:grin]
да!

переписывай свою хуйню.

сабстринги убирай нахуй.

юзай деление и вычитание.
Если уж на то пошло, то
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
или даже строка varchar(max) пох.
ЗЫ но тогда проверку надо на число реализовывать
Там int на входе только. Само число не может адовой длинный. Этож не тексты
...
Рейтинг: 0 / 0
07.09.2022, 16:31
    #140649
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 16:27
[игнорируется]
eNose  07.09.2022, 16:24
[игнорируется]
Redd  07.09.2022, 16:23
[игнорируется]
eNose  07.09.2022, 16:20
[игнорируется]
Redd  07.09.2022, 16:17
[игнорируется]
...
num res
1234 10

1234/1000 -> 1
(1234 - 1*1000)/100 -> 2
(1234 - 1*1000 - 2*100)/10 -> 3
(1234 - 1*1000 - 2*100 - 3*10)/1 -> 4
Чото заморочено, у меня тупа, быстро и работает чотко!)
"строки" и "быстро" - это миф
Согласен, но у тебя куча доп. действий и округления
В БД тормоза в основном из за доп доступа к таблицам, когда это можно избежать.
и внутренние команды работают сильно быстрее нежели построчно функции ебашить. MSSQL с 2019 версии частично научился встраивать функции в план запроса без залазиния в каждую строку, но там где это возможно. В твоей функции цикл который оптимизатор не сможет вывернуть в пакет.
Ну на джуна базоёба вполне ответил. Джуны 50-150к щас поднимают по зп в неризиновой.
...
Рейтинг: 0 / 0
07.09.2022, 16:32
    #140650
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Ну будет 20 разрядом. Тюю, этож не 100000000 букав
...
Рейтинг: 0 / 0
07.09.2022, 16:32
    #140651
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  07.09.2022, 16:29
[игнорируется]
eNose  07.09.2022, 16:16
[игнорируется]
Пулькин  07.09.2022, 16:11
[игнорируется]
Въеби им Сириус базоебам обоссаным [:grin]
да!

переписывай свою хуйню.

сабстринги убирай нахуй.

юзай деление и вычитание.
Если уж на то пошло, то
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
или даже строка varchar(max) пох.
ЗЫ но тогда проверку надо на число реализовывать
Или суммировать только цифры, игнорируя прочее
...
Рейтинг: 0 / 0
07.09.2022, 16:34
    #140657
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  07.09.2022, 16:32
[игнорируется]
Горбатый ёж  07.09.2022, 16:29
[игнорируется]
eNose  07.09.2022, 16:16
[игнорируется]
Пулькин  07.09.2022, 16:11
[игнорируется]
Въеби им Сириус базоебам обоссаным [:grin]
да!

переписывай свою хуйню.

сабстринги убирай нахуй.

юзай деление и вычитание.
Если уж на то пошло, то
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
или даже строка varchar(max) пох.
ЗЫ но тогда проверку надо на число реализовывать
Или суммировать только цифры, игнорируя прочее
Там int на вход идет, ничего кроме инта прийти в функции не сможет. Буде ошибка. Это и есть проверка.
...
Рейтинг: 0 / 0
07.09.2022, 16:36
    #140659
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  07.09.2022, 16:32
[игнорируется]
Или суммировать только цифры, игнорируя прочее
Это требует уточнения в задаче.
...
Рейтинг: 0 / 0
07.09.2022, 16:36
    #140660
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 16:34
[игнорируется]
Там int на вход идет
Ты задачу-то саму читал?
39 символов в числе - это не int никуя.
...
Рейтинг: 0 / 0
07.09.2022, 16:39
    #140662
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  07.09.2022, 16:36
[игнорируется]
Redd  07.09.2022, 16:34
[игнорируется]
Там int на вход идет
Ты задачу-то саму читал?
39 символов в числе - это не int никуя.
Читал, но может пропустил чото. Главная моя функция чотко работает)
...
Рейтинг: 1 / 0
Нравится: eNose
07.09.2022, 18:45
    #140827
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
КГ/АМ
З.Ы. на телефоне нет менеджментстудии
...
Рейтинг: 0 / 0
07.09.2022, 18:49
    #140838
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
...
Рейтинг: 0 / 0
07.09.2022, 18:53
    #140847
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
07.09.2022, 18:59
    #140856
Тень на плетень
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  07.09.2022, 18:53
[игнорируется]
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
Вообще то продаются и квадратные. Ливневые - ваще прямоугольные
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
07.09.2022, 19:54
    #140906
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  07.09.2022, 18:53
[игнорируется]
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
Всё равно сритесь!
...
Рейтинг: 0 / 0
07.09.2022, 20:36
    #140946
Тень на плетень
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  07.09.2022, 19:54
[игнорируется]
Буся  07.09.2022, 18:53
[игнорируется]
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
Всё равно сритесь!
Уже усрались [:biggrin2]
454_original.jpg
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
07.09.2022, 20:37
    #140948
Тень на плетень
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Тень на плетень  07.09.2022, 20:36
[игнорируется]
Горбатый ёж  07.09.2022, 19:54
[игнорируется]
Буся  07.09.2022, 18:53
[игнорируется]
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
Всё равно сритесь!
Уже усрались [:biggrin2]
454_original.jpg
Ну или ...
TCB00001289_1-500x400.jpg
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
07.09.2022, 20:38
    #140949
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Тень на плетень  07.09.2022, 20:36
[игнорируется]
Горбатый ёж  07.09.2022, 19:54
[игнорируется]
Буся  07.09.2022, 18:53
[игнорируется]
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
Всё равно сритесь!
Уже усрались [:biggrin2]
454_original.jpg
Ты люк от решётки не можешь отличить?
Бывает...
...
Рейтинг: 1 / 0
Нравится: Гарыныч
07.09.2022, 20:38
    #140950
Тень на плетень
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Все зависит от формы коллектора, дон нах.
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
07.09.2022, 20:38
    #140951
Тень на плетень
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  07.09.2022, 20:38
[игнорируется]
Тень на плетень  07.09.2022, 20:36
[игнорируется]
Горбатый ёж  07.09.2022, 19:54
[игнорируется]
Буся  07.09.2022, 18:53
[игнорируется]
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
...
ну это же боян, обсуждено давно
Всё равно сритесь!
Уже усрались [:biggrin2]
454_original.jpg
Ты люк от решётки не можешь отличить?
Бывает...
Это именно люк. Причем ливневый. Его можно открыть)
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
07.09.2022, 23:35
    #141020
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  07.09.2022, 16:31
[игнорируется]
Redd  07.09.2022, 16:27
[игнорируется]
eNose  07.09.2022, 16:24
[игнорируется]
Redd  07.09.2022, 16:23
[игнорируется]
eNose  07.09.2022, 16:20
[игнорируется]
...
Чото заморочено, у меня тупа, быстро и работает чотко!)
"строки" и "быстро" - это миф
Согласен, но у тебя куча доп. действий и округления
В БД тормоза в основном из за доп доступа к таблицам, когда это можно избежать.
и внутренние команды работают сильно быстрее нежели построчно функции ебашить. MSSQL с 2019 версии частично научился встраивать функции в план запроса без залазиния в каждую строку, но там где это возможно. В твоей функции цикл который оптимизатор не сможет вывернуть в пакет.
Ну на джуна базоёба вполне ответил. Джуны 50-150к щас поднимают по зп в неризиновой.
Что-то задумался, что твои реплейсы 10ки раз для каждого значения или Барсучий ад не очень уж оптимальны! Реплейсы это скан-цикл значения и их в разы больше, неужели это быстрее по сравнению с моим, за раз 1им циклом для значения!?
...
Рейтинг: 0 / 0
07.09.2022, 23:53
    #141023
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Да и у Барсука тоже не одним, а ещё и через временные таблицы
...
Рейтинг: 0 / 0
08.09.2022, 02:08
    #141038
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 23:53
[игнорируется]
через временные таблицы
И шо?
...
Рейтинг: 0 / 0
08.09.2022, 09:13
    #141141
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 23:53
[игнорируется]
Да и у Барсука тоже не одним, а ещё и через временные таблицы
У барсука cte (with) - а mssql это встраиваемый подзапрос без временных таблиц, если ты про это. В других СУБД типа постгрес да cte это сразу временная таблица.

А табличная переменная это аналог самой таблицы
...
Рейтинг: 0 / 0
08.09.2022, 10:22
    #141200
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
PaNik  08.09.2022, 02:08
[игнорируется]
Redd  07.09.2022, 23:53
[игнорируется]
через временные таблицы
И шо?
Ну чо, временные таблицы — это хорошо, сам юзаю. Но не тут.

А вообще...

1ый базаеб написал избыточный код. Заюзал временную таблицу, продублировал записи (а если их 100и тысяч!). Кстати, алгоритм получения суммы у него такой же, как в моей функции, если присмотреться. Но как это все выглядит.. Пиздец.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

2ой базаеб написал просто не оптимальный код. Его код 10и раз для каждого значения (а если их 100и тысяч!) лопатит реплейсы впустую. А это сканы каждого значения по символьно! Выделения памяти для нового значения, проверки и тд, и тп внутри. Тормоза, отстой.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

А ты и Костик260 вообще нихуя не написали ,а только пиздеть горазды, лошбаны [:biggrin2]
...
Рейтинг: 0 / 0
08.09.2022, 10:24
    #141202
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
Помню, что уже было, но ответа не помню. Можно начать сначала. Предположу, что массу наезжающего на люк автомобиля лучше распределять на окружность, а не на любую другую фигуру. С другой стороны, у круглого люка есть четыре уха, которые портят идею.
...
Рейтинг: 0 / 0
08.09.2022, 10:25
    #141204
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  08.09.2022, 09:13
[игнорируется]
Redd  07.09.2022, 23:53
[игнорируется]
Да и у Барсука тоже не одним, а ещё и через временные таблицы
У барсука cte (with) - а mssql это встраиваемый подзапрос без временных таблиц, если ты про это. В других СУБД типа постгрес да cte это сразу временная таблица.

А табличная переменная это аналог самой таблицы
Наверное, не ибу чо это, у меня нет мсскл, но все у него там какое-то пиздос)
...
Рейтинг: 0 / 0
08.09.2022, 10:25
    #141205
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 23:35
[игнорируется]
Дед-Папыхтет  07.09.2022, 16:31
[игнорируется]
Redd  07.09.2022, 16:27
[игнорируется]
eNose  07.09.2022, 16:24
[игнорируется]
Redd  07.09.2022, 16:23
[игнорируется]
...
"строки" и "быстро" - это миф
Согласен, но у тебя куча доп. действий и округления
В БД тормоза в основном из за доп доступа к таблицам, когда это можно избежать.
и внутренние команды работают сильно быстрее нежели построчно функции ебашить. MSSQL с 2019 версии частично научился встраивать функции в план запроса без залазиния в каждую строку, но там где это возможно. В твоей функции цикл который оптимизатор не сможет вывернуть в пакет.
Ну на джуна базоёба вполне ответил. Джуны 50-150к щас поднимают по зп в неризиновой.
Что-то задумался, что твои реплейсы 10ки раз для каждого значения или Барсучий ад не очень уж оптимальны! Реплейсы это скан-цикл значения и их в разы больше, неужели это быстрее по сравнению с моим, за раз 1им циклом для значения!?
С каждым проходом длина сканируемой Папыхом строки уменьшается.
...
Рейтинг: 0 / 0
08.09.2022, 10:27
    #141210
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  08.09.2022, 10:25
[игнорируется]
Redd  07.09.2022, 23:35
[игнорируется]
Дед-Папыхтет  07.09.2022, 16:31
[игнорируется]
Redd  07.09.2022, 16:27
[игнорируется]
eNose  07.09.2022, 16:24
[игнорируется]
...
Согласен, но у тебя куча доп. действий и округления
В БД тормоза в основном из за доп доступа к таблицам, когда это можно избежать.
и внутренние команды работают сильно быстрее нежели построчно функции ебашить. MSSQL с 2019 версии частично научился встраивать функции в план запроса без залазиния в каждую строку, но там где это возможно. В твоей функции цикл который оптимизатор не сможет вывернуть в пакет.
Ну на джуна базоёба вполне ответил. Джуны 50-150к щас поднимают по зп в неризиновой.
Что-то задумался, что твои реплейсы 10ки раз для каждого значения или Барсучий ад не очень уж оптимальны! Реплейсы это скан-цикл значения и их в разы больше, неужели это быстрее по сравнению с моим, за раз 1им циклом для значения!?
С каждым проходом длина сканируемой Папыхом строки уменьшается.
Чо? Все повторятся снова и снова, и снова, и снова, и снова, и снова заново для каждой строки!
...
Рейтинг: 0 / 0
08.09.2022, 11:03
    #141257
Сталкер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 10:22
[игнорируется]
PaNik  08.09.2022, 02:08
[игнорируется]
Redd  07.09.2022, 23:53
[игнорируется]
через временные таблицы
И шо?
Ну чо, временные таблицы — это хорошо, сам юзаю. Но не тут.

А вообще...

1ый базаеб написал избыточный код. Заюзал временную таблицу, продублировал записи (а если их 100и тысяч!). Кстати, алгоритм получения суммы у него такой же, как в моей функции, если присмотреться. Но как это все выглядит.. Пиздец.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

2ой базаеб написал просто не оптимальный код. Его код 10и раз для каждого значения (а если их 100и тысяч!) лопатит реплейсы впустую. А это сканы каждого значения по символьно! Выделения памяти для нового значения, проверки и тд, и тп внутри. Тормоза, отстой.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

А ты и Костик260 вообще нихуя не написали ,а только пиздеть горазды, лошбаны [:biggrin2]
А откуда ты знаешь, что код избыточный и/или неоптимальный?
Ты сравнил производительность? И насколько там было больше операций ввода-вывода, чем в твоем варианте?
Сравни, это просто.
Set statistics io on перед началом каждого скрипта.
Гарантированно удивишься
...
Рейтинг: 0 / 0
08.09.2022, 11:08
    #141266
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Сталкер  08.09.2022, 11:03
[игнорируется]
Redd  08.09.2022, 10:22
[игнорируется]
PaNik  08.09.2022, 02:08
[игнорируется]
Redd  07.09.2022, 23:53
[игнорируется]
через временные таблицы
И шо?
Ну чо, временные таблицы — это хорошо, сам юзаю. Но не тут.

А вообще...

1ый базаеб написал избыточный код. Заюзал временную таблицу, продублировал записи (а если их 100и тысяч!). Кстати, алгоритм получения суммы у него такой же, как в моей функции, если присмотреться. Но как это все выглядит.. Пиздец.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

2ой базаеб написал просто не оптимальный код. Его код 10и раз для каждого значения (а если их 100и тысяч!) лопатит реплейсы впустую. А это сканы каждого значения по символьно! Выделения памяти для нового значения, проверки и тд, и тп внутри. Тормоза, отстой.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

А ты и Костик260 вообще нихуя не написали ,а только пиздеть горазды, лошбаны [:biggrin2]
А откуда ты знаешь, что код избыточный и/или неоптимальный?
Ты сравнил производительность? И насколько там было больше операций ввода-вывода, чем в твоем варианте?
Сравни, это просто.
Set statistics io on перед началом каждого скрипта.
Гарантированно удивишься
Да видно же, ты чо не базаеб? У первого дубли строк в 100500 раз. У второго 10ки вызовов впустую тяжеловесной функции + 20ки раз другой функции
И не могу я сравнить, у меня нет msssql) но я вижу и так, яж не базаеб, а разраб!
...
Рейтинг: 0 / 0
08.09.2022, 11:14
    #141277
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 10:27
[игнорируется]
Просто Трёп  08.09.2022, 10:25
[игнорируется]
Redd  07.09.2022, 23:35
[игнорируется]
Дед-Папыхтет  07.09.2022, 16:31
[игнорируется]
Redd  07.09.2022, 16:27
[игнорируется]
...
В БД тормоза в основном из за доп доступа к таблицам, когда это можно избежать.
и внутренние команды работают сильно быстрее нежели построчно функции ебашить. MSSQL с 2019 версии частично научился встраивать функции в план запроса без залазиния в каждую строку, но там где это возможно. В твоей функции цикл который оптимизатор не сможет вывернуть в пакет.
Ну на джуна базоёба вполне ответил. Джуны 50-150к щас поднимают по зп в неризиновой.
Что-то задумался, что твои реплейсы 10ки раз для каждого значения или Барсучий ад не очень уж оптимальны! Реплейсы это скан-цикл значения и их в разы больше, неужели это быстрее по сравнению с моим, за раз 1им циклом для значения!?
С каждым проходом длина сканируемой Папыхом строки уменьшается.
Чо? Все повторятся снова и снова, и снова, и снова, и снова, и снова заново для каждой строки!
И точно. Папых, с тебя оптимизация.
...
Рейтинг: 0 / 0
08.09.2022, 11:23
    #141287
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 10:22
[игнорируется]
1ый базаеб написал избыточный код. Заюзал временную таблицу, продублировал записи (а если их 100и тысяч!). Кстати, алгоритм получения суммы у него такой же, как в моей функции, если присмотреться. Но как это все выглядит.. Пиздец.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

2ой базаеб написал просто не оптимальный код. Его код 10и раз для каждого значения (а если их 100и тысяч!) лопатит реплейсы впустую. А это сканы каждого значения по символьно! Выделения памяти для нового значения, проверки и тд, и тп внутри. Тормоза, отстой.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!
Результаты теста под спойлером:

Код теста - заменил вывод всего на среднее - чисто что бы портянка не выводилась длинная, агрегация по полю читает всю выборку. Ну и по этому полю фильтр воткнул что бы нагляднее было
Спойлер
Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
set nocount on;
go
drop table if exists t;
go
create table t (num numeric(38, 0) not null);
go
-- заполним таблицу 50 раз по 2000 строк = 100 тыс строк
insert into t(num)
select
  left(
   replace(replace(replace(replace(replace(replace(replace(cast(newid() as varchar(50)),'-',''),'A',''),'B',''),'C',''),'D',''),'E',''),'F','')
  +replace(replace(replace(replace(replace(replace(replace(cast(newid() as varchar(50)),'-',''),'A',''),'B',''),'C',''),'D',''),'E',''),'F','')
  +replace(replace(replace(replace(replace(replace(replace(cast(newid() as varchar(50)),'-',''),'A',''),'B',''),'C',''),'D',''),'E',''),'F','')
  +replace(replace(replace(replace(replace(replace(replace(cast(newid() as varchar(50)),'-',''),'A',''),'B',''),'C',''),'D',''),'E',''),'F','')
  +replace(replace(replace(replace(replace(replace(replace(cast(newid() as varchar(50)),'-',''),'A',''),'B',''),'C',''),'D',''),'E',''),'F','')
  ,38)
from openjson('['+replicate('1,',1999)+'1]')
go 50
CREATE OR ALTER FUNCTION dbo.test_sum(@num VARCHAR(40))
  RETURNS BIGINT
AS
BEGIN
  DECLARE @res BIGINT = 0;
  DECLARE @len INT = LEN(@num);

  WHILE @len >= 1 BEGIN
    SET @res = @res + SUBSTRING(@num, @len, 1);
    SET @len = @len - 1;
  END;

  RETURN @res;
END
GO
set statistics time on;
GO
print '--------- var 1 -- crossjoin'

declare @num table (num int not null);
insert @num
  select top (1000)
    row_number() over (order by o.object_id)
  from sys.objects o;

with temp as
(
select
  t.num
  , sum(convert(int, substring(convert(varchar(100), t.num), num.num, 1))) as res
from t t
cross join @num num
where
  num.num <= len(convert(varchar(100), t.num))
  and t.num >= 0
group by
  t.num
)
select avg(res)
from temp
where res between 120 and 170;

print '--------- var 1 -- crossjoin'
go

print '--------- var 2 - replace 0-9';

with temp as
(
select
  num,
  (9+8+7+6+5+4+3+2+1)*len(num)
  -len(replace(num,'9',''))*9
  -len(replace(num,'8',''))*8
  -len(replace(num,'7',''))*7
  -len(replace(num,'6',''))*6
  -len(replace(num,'5',''))*5
  -len(replace(num,'4',''))*4
  -len(replace(num,'3',''))*3
  -len(replace(num,'2',''))*2
  -len(replace(num,'1',''))*1 as res
from t
)
select avg(res)
from temp
where res between 120 and 170;

print '--------- var 2 - replace 0-9'
go

print '--------- var 3 - scalar function';

with temp as
(
select
    num
  , dbo.test_sum(num) as res
from t
)
select avg(res)
from temp
where res between 120 and 170;

print '--------- var 3 - scalar function'
go
set statistics time off
go
Ну и результаты теста под спойлером ниже:
Спойлер
--------- var 1 -- crossjoin ----------- 157 SQL Server Execution Times: CPU time = 8938 ms, elapsed time = 37042 ms. --------- var 1 -- crossjoin --------- var 2 - replace 0-9 ----------- 157 SQL Server Execution Times: CPU time = 2687 ms, elapsed time = 2714 ms. --------- var 2 - replace 0-9 --------- var 3 - scalar function -------------------- 157 SQL Server Execution Times: CPU time = 5922 ms, elapsed time = 7615 ms. --------- var 3 - scalar function Completion time: 2022-09-08T11:20:49.4373720+03:00
Ну функция здесь отработала, как ни странно, быстрее кросджоина, это из за версии 2019 SQL, на каком нибудь 2016 или ранним функция бы была в саомом дне по времени.
...
Изменено: 08.09.2022, 11:27 - Дед-Папыхтет
Рейтинг: 0 / 0
08.09.2022, 11:23
    #141288
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 11:08
[игнорируется]
Сталкер  08.09.2022, 11:03
[игнорируется]
Redd  08.09.2022, 10:22
[игнорируется]
PaNik  08.09.2022, 02:08
[игнорируется]
Redd  07.09.2022, 23:53
[игнорируется]
...
И шо?
Ну чо, временные таблицы — это хорошо, сам юзаю. Но не тут.

А вообще...

1ый базаеб написал избыточный код. Заюзал временную таблицу, продублировал записи (а если их 100и тысяч!). Кстати, алгоритм получения суммы у него такой же, как в моей функции, если присмотреться. Но как это все выглядит.. Пиздец.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

2ой базаеб написал просто не оптимальный код. Его код 10и раз для каждого значения (а если их 100и тысяч!) лопатит реплейсы впустую. А это сканы каждого значения по символьно! Выделения памяти для нового значения, проверки и тд, и тп внутри. Тормоза, отстой.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

А ты и Костик260 вообще нихуя не написали ,а только пиздеть горазды, лошбаны [:biggrin2]
А откуда ты знаешь, что код избыточный и/или неоптимальный?
Ты сравнил производительность? И насколько там было больше операций ввода-вывода, чем в твоем варианте?
Сравни, это просто.
Set statistics io on перед началом каждого скрипта.
Гарантированно удивишься
Да видно же, ты чо не базаеб? У первого дубли строк в 100500 раз. У второго 10ки вызовов впустую тяжеловесной функции + 20ки раз другой функции
И не могу я сравнить, у меня нет msssql) но я вижу и так, яж не базаеб, а разраб!
Сравни на MySQL, тест выше на MSSQL я приложил - переписал твою функцию, думаю ты сможешь переписать код на MySQL
...
Рейтинг: 0 / 0
08.09.2022, 11:42
    #141304
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  08.09.2022, 11:23
[игнорируется]
Redd  08.09.2022, 11:08
[игнорируется]
Сталкер  08.09.2022, 11:03
[игнорируется]
Redd  08.09.2022, 10:22
[игнорируется]
PaNik  08.09.2022, 02:08
[игнорируется]
...
Ну чо, временные таблицы — это хорошо, сам юзаю. Но не тут.

А вообще...

1ый базаеб написал избыточный код. Заюзал временную таблицу, продублировал записи (а если их 100и тысяч!). Кстати, алгоритм получения суммы у него такой же, как в моей функции, если присмотреться. Но как это все выглядит.. Пиздец.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

2ой базаеб написал просто не оптимальный код. Его код 10и раз для каждого значения (а если их 100и тысяч!) лопатит реплейсы впустую. А это сканы каждого значения по символьно! Выделения памяти для нового значения, проверки и тд, и тп внутри. Тормоза, отстой.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

А ты и Костик260 вообще нихуя не написали ,а только пиздеть горазды, лошбаны [:biggrin2]
А откуда ты знаешь, что код избыточный и/или неоптимальный?
Ты сравнил производительность? И насколько там было больше операций ввода-вывода, чем в твоем варианте?
Сравни, это просто.
Set statistics io on перед началом каждого скрипта.
Гарантированно удивишься
Да видно же, ты чо не базаеб? У первого дубли строк в 100500 раз. У второго 10ки вызовов впустую тяжеловесной функции + 20ки раз другой функции
И не могу я сравнить, у меня нет msssql) но я вижу и так, яж не базаеб, а разраб!
Сравни на MySQL, тест выше на MSSQL я приложил - переписал твою функцию, думаю ты сможешь переписать код на MySQL
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
1

SELECT num, test_sum(num) AS summ FROM ttt;
/* Affected rows: 0  Найденные строки: 10 003  Предупреждения: 0  Длительность 1 query: 0,156 sec. (+ 0,360 sec. network) */

2

select
num,
(9+8+7+6+5+4+3+2+1)*LENGTH(num)
-LENGTH(replace(num,'9',''))*9
-LENGTH(replace(num,'8',''))*8
-LENGTH(replace(num,'7',''))*7
-LENGTH(replace(num,'6',''))*6
-LENGTH(replace(num,'5',''))*5
-LENGTH(replace(num,'4',''))*4
-LENGTH(replace(num,'3',''))*3
-LENGTH(replace(num,'2',''))*2
-LENGTH(replace(num,'1',''))*1 as summ
from ttt;
/* Affected rows: 0  Найденные строки: 10 003  Предупреждения: 0  Длительность  1 query: 0,140 sec. (+ 0,407 sec. network) */
Вызывал свою и твою на 10к строках без индексной таблицы. Разница минимальная. Барсуковую хуету переписывать не стал.
...
Рейтинг: 0 / 0
08.09.2022, 11:45
    #141308
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
10.3.31-MariaDB
...
Рейтинг: 0 / 0
08.09.2022, 12:23
    #141355
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
W  08.09.2022, 12:12
[игнорируется]
хуйня это все
настоящее базоебство начинается на хулиарде конкурирующих транзакций
когда случаются, казалось бы с нихуя, дедлоки и блокировки которых не ждали
особенно это интересно на кластере с репликацией
Ты для начала смоги калькулятор написать[:biggrin2]
...
Рейтинг: 0 / 0
08.09.2022, 14:03
    #141445
9288
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
tst> with t as (select 1234 n from dual union all select 9999 from dual union all select 0 from dual
  2             union all select 123456789012345678901234567890123456789 from dual)
  3  select n, nvl(length(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(n,
  4                '0', ''), '1', '*'), '2', '**'), '3', '***'), '4', '****'), '5', '*****'), '6', '******'),
  5                '7', '*******'), '8', '********'), '9', '*********')), 0) sum from t;

                                       N                                      SUM
---------------------------------------- ----------------------------------------
                                    1234                                       10
                                    9999                                       36
                                       0                                        0
 123456789012345678901234567890123456789                                      180
Можно сократить на один replace заменяя не на '*' а на '1' :)))
...
Изменено: 08.09.2022, 14:05 - 9288
Рейтинг: 0 / 0
08.09.2022, 14:16
    #141453
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 10:22
[игнорируется]
PaNik  08.09.2022, 02:08
[игнорируется]
Redd  07.09.2022, 23:53
[игнорируется]
через временные таблицы
И шо?
Ну чо, временные таблицы — это хорошо, сам юзаю. Но не тут.

А вообще...

1ый базаеб написал избыточный код. Заюзал временную таблицу, продублировал записи (а если их 100и тысяч!). Кстати, алгоритм получения суммы у него такой же, как в моей функции, если присмотреться. Но как это все выглядит.. Пиздец.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

2ой базаеб написал просто не оптимальный код. Его код 10и раз для каждого значения (а если их 100и тысяч!) лопатит реплейсы впустую. А это сканы каждого значения по символьно! Выделения памяти для нового значения, проверки и тд, и тп внутри. Тормоза, отстой.
И мой, понятый, наглядный и легковесный код. Но я не базаеб!

А ты и Костик260 вообще нихуя не написали ,а только пиздеть горазды, лошбаны [:biggrin2]
Мне чо за мЭтрами повторять? А вообще мне тупо лень думать. Я 15 строчек когда за две недели осили, написал, проверил теперь отдыхаю.. Мне лень.
...
Рейтинг: 0 / 0
08.09.2022, 14:17
    #141456
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 10:25
[игнорируется]
Дед-Папыхтет  08.09.2022, 09:13
[игнорируется]
Redd  07.09.2022, 23:53
[игнорируется]
Да и у Барсука тоже не одним, а ещё и через временные таблицы
У барсука cte (with) - а mssql это встраиваемый подзапрос без временных таблиц, если ты про это. В других СУБД типа постгрес да cte это сразу временная таблица.

А табличная переменная это аналог самой таблицы
Наверное, не ибу чо это, у меня нет мсскл, но все у него там какое-то пиздос)
With и временная таблица это разные вещи. вот что имеют ввиду.
...
Рейтинг: 0 / 0
08.09.2022, 14:38
    #141477
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет [игнорируется] 

А нельзя померить отжираемую память запросами в этих ваших мсскул, этож навороченная бд?
...
Рейтинг: 0 / 0
08.09.2022, 14:42
    #141483
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
W  08.09.2022, 14:39
[игнорируется]
Redd  08.09.2022, 14:38
[игнорируется]
Дед-Папыхтет [игнорируется] 

А нельзя померить отжираемую память запросами в этих ваших мсскул, этож навороченная бд?
можно. но это стоит денег. которые платят базоебам
Иди кластера поднимай, они заждались уже тебя, без тебя нивкуда
...
Рейтинг: 0 / 0
08.09.2022, 14:45
    #141488
Пулькин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Хуле до Сириуса доебались черти?
...
Рейтинг: 0 / 0
08.09.2022, 14:49
    #141496
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
W  08.09.2022, 14:44
[игнорируется]
Redd  08.09.2022, 14:42
[игнорируется]
W  08.09.2022, 14:39
[игнорируется]
Redd  08.09.2022, 14:38
[игнорируется]
Дед-Папыхтет [игнорируется] 

А нельзя померить отжираемую память запросами в этих ваших мсскул, этож навороченная бд?
можно. но это стоит денег. которые платят базоебам
Иди кластера поднимай, они заждались уже тебя, без тебя нивкуда
у меня поднято
я не базоебка. этим занимаются специально обученные люди
Ты уборщиком работаешь или какие-то секс-услуги?
...
Рейтинг: 0 / 0
08.09.2022, 14:52
    #141504
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Пулькин  08.09.2022, 14:45
[игнорируется]
Хуле до Сириуса доебались черти?
Да все норм, мы тут с Лехой, Барсиком и я задачки решаем. Остальные просто пиздаболы никчемны оказались [:biggrin2]
...
Рейтинг: 0 / 0
08.09.2022, 14:53
    #141507
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
W  08.09.2022, 14:53
[игнорируется]
Redd  08.09.2022, 14:49
[игнорируется]
W  08.09.2022, 14:44
[игнорируется]
Redd  08.09.2022, 14:42
[игнорируется]
W  08.09.2022, 14:39
[игнорируется]
...
Иди кластера поднимай, они заждались уже тебя, без тебя нивкуда
у меня поднято
я не базоебка. этим занимаются специально обученные люди
Ты уборщиком работаешь или какие-то секс-услуги?
я девочка!
Ааа, ептель, понятно. Тогда секс-услуги остаются
...
Рейтинг: 0 / 0
08.09.2022, 14:55
    #141510
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
W  08.09.2022, 14:48
[игнорируется]
Дед-Папыхтет  08.09.2022, 09:13
[игнорируется]
У барсука cte (with) - а mssql это встраиваемый подзапрос без временных таблиц
да нихуя. это та же память, а таблицы-хуицы - похуй
Это память в мсскл 100%. Но в постгрес на курсах да и план запроса показывает, что это временная таблица. Для меня это было открытие и прихуевание что в постгрес иначе
...
Рейтинг: 0 / 0
08.09.2022, 14:58
    #141515
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
declare @t table (num numeric(38, 0) not null);
insert @t values (1234567890);

select sum(ss)
from
(
select cast(substring(a.b, v.number+1, 1) as int) as ss
from (select cast(num as varchar) as b from @t) a
join master..spt_values v on v.number < len(a.b)
where v.type = 'P'
) ttt;
...
Рейтинг: 0 / 0
08.09.2022, 14:58
    #141516
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Пулькин  08.09.2022, 14:45
[игнорируется]
Хуле до Сириуса доебались черти?
А хуле он пидорасит тут, хуйню несет и зарплатам удивляется.

Да я сейчас получаю 260 тр за 15 строк кода.
я для этого 22 года. пОпыХТЕд получает больше но и работает больше.

Кто его вообще трогал, прелестит и прелестит какая разница.
...
Рейтинг: 0 / 0
08.09.2022, 15:00
    #141520
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 14:52
[игнорируется]
Пулькин  08.09.2022, 14:45
[игнорируется]
Хуле до Сириуса доебались черти?
Да все норм, мы тут с Лехой, Барсиком и я задачки решаем. Остальные просто пиздаболы никчемны оказались [:biggrin2]
Ну и решайте если больше делать нехуй, я когда устану нихуя не делать может тоже посмотрю
...
Рейтинг: 0 / 0
08.09.2022, 15:02
    #141522
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  08.09.2022, 14:58
[игнорируется]
declare @t table (num numeric(38, 0) not null);
insert @t values (1234567890);

select sum(ss)
from
(
select cast(substring(a.b, v.number+1, 1) as int) as ss
from (select cast(num as varchar) as b from @t) a
join master..spt_values v on v.number < len(a.b)
where v.type = 'P'
) ttt;
Дед-Папыхтет запусти у себя там для тестов сее, тока со 100к)
...
Рейтинг: 0 / 0
08.09.2022, 15:02
    #141523
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 15:02
[игнорируется]
eNose  08.09.2022, 14:58
[игнорируется]
declare @t table (num numeric(38, 0) not null);
insert @t values (1234567890);

select sum(ss)
from
(
select cast(substring(a.b, v.number+1, 1) as int) as ss
from (select cast(num as varchar) as b from @t) a
join master..spt_values v on v.number < len(a.b)
where v.type = 'P'
) ttt;
Дед-Папыхтет запусти у себя там для тестов сее, тока со 100к)
там дописать надо что б построчно работала

мне лень
...
Рейтинг: 0 / 0
08.09.2022, 15:03
    #141526
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 15:00
[игнорируется]
Redd  08.09.2022, 14:52
[игнорируется]
Пулькин  08.09.2022, 14:45
[игнорируется]
Хуле до Сириуса доебались черти?
Да все норм, мы тут с Лехой, Барсиком и я задачки решаем. Остальные просто пиздаболы никчемны оказались [:biggrin2]
Ну и решайте если больше делать нехуй, я когда устану нихуя не делать может тоже посмотрю
[:lol], я параллельно все делаю. Прелесть, решаю задачи, слушаю музыку, срусь немного тут. Учись! Загруженный наш суперспец Костик260
...
Рейтинг: 0 / 0
08.09.2022, 15:04
    #141527
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  08.09.2022, 15:02
[игнорируется]
Redd  08.09.2022, 15:02
[игнорируется]
eNose  08.09.2022, 14:58
[игнорируется]
declare @t table (num numeric(38, 0) not null);
insert @t values (1234567890);

select sum(ss)
from
(
select cast(substring(a.b, v.number+1, 1) as int) as ss
from (select cast(num as varchar) as b from @t) a
join master..spt_values v on v.number < len(a.b)
where v.type = 'P'
) ttt;
Дед-Папыхтет запусти у себя там для тестов сее, тока со 100к)
там дописать надо что б построчно работала

мне лень
Нуу [:sad]
...
Рейтинг: 0 / 0
08.09.2022, 15:09
    #141538
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 15:04
[игнорируется]
eNose  08.09.2022, 15:02
[игнорируется]
Redd  08.09.2022, 15:02
[игнорируется]
eNose  08.09.2022, 14:58
[игнорируется]
declare @t table (num numeric(38, 0) not null);
insert @t values (1234567890);

select sum(ss)
from
(
select cast(substring(a.b, v.number+1, 1) as int) as ss
from (select cast(num as varchar) as b from @t) a
join master..spt_values v on v.number < len(a.b)
where v.type = 'P'
) ttt;
Дед-Папыхтет запусти у себя там для тестов сее, тока со 100к)
там дописать надо что б построчно работала

мне лень
Нуу [:sad]
declare @t table (num numeric(38, 0) not null);
insert @t values (123456789012345678901234567890), (123), (0);

select rr, sum(ss)
from
(
select rr, cast(substring(a.b, v.number+1, 1) as int) as ss
from (select num as rr, cast(num as varchar) as b from @t) a
join master..spt_values v on v.number < len(a.b)
where v.type = 'P'
) ttt

group by rr;
...
Рейтинг: 0 / 0
08.09.2022, 15:12
    #141542
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
W  08.09.2022, 15:11
[игнорируется]
eNose  08.09.2022, 15:09
[игнорируется]
Redd  08.09.2022, 15:04
[игнорируется]
eNose  08.09.2022, 15:02
[игнорируется]
Redd  08.09.2022, 15:02
[игнорируется]
...
там дописать надо что б построчно работала

мне лень
Нуу [:sad]
declare @t table (num numeric(38, 0) not null);
insert @t values (123456789012345678901234567890), (123), (0);

select rr, sum(ss)
from
(
select rr, cast(substring(a.b, v.number+1, 1) as int) as ss
from (select num as rr, cast(num as varchar) as b from @t) a
join master..spt_values v on v.number < len(a.b)
where v.type = 'P'
) ttt

group by rr;
ебашь еще лучше
не наносекундно и песообразно
да и так ОХУЕННО же
...
Рейтинг: 0 / 0
08.09.2022, 15:13
    #141544
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
W  08.09.2022, 15:13
[игнорируется]
eNose  08.09.2022, 15:12
[игнорируется]
W  08.09.2022, 15:11
[игнорируется]
eNose  08.09.2022, 15:09
[игнорируется]
Redd  08.09.2022, 15:04
[игнорируется]
...
declare @t table (num numeric(38, 0) not null);
insert @t values (123456789012345678901234567890), (123), (0);

select rr, sum(ss)
from
(
select rr, cast(substring(a.b, v.number+1, 1) as int) as ss
from (select num as rr, cast(num as varchar) as b from @t) a
join master..spt_values v on v.number < len(a.b)
where v.type = 'P'
) ttt

group by rr;
ебашь еще лучше
не наносекундно и песообразно
да и так ОХУЕННО же
master..spt_values - пидорастия какая-то
стандартная таблица же
...
Рейтинг: 0 / 0
08.09.2022, 15:19
    #141549
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
W  08.09.2022, 15:15
[игнорируется]
eNose  08.09.2022, 15:13
[игнорируется]
W  08.09.2022, 15:13
[игнорируется]
eNose  08.09.2022, 15:12
[игнорируется]
W  08.09.2022, 15:11
[игнорируется]
...
да и так ОХУЕННО же
master..spt_values - пидорастия какая-то
стандартная таблица же
ога, и еще БД northwind
только в мастере есть такая таблица.
лайфхак для некоторых этот спт_валуес, но на проде доступа к мастеру и этой таблицы у разрабов да и приклада нет. для таких задач обычно держат в пользовательской БД табличку с одной колонкой int и миллион или сколько нибудь значений - что бы в селектах джоинить на неё...
Но к задаче текущей по сути тоже самое что и в решении барсука. Барсук просто сделал временную таблицу такую наполнив предварительно, иноз полез в системную таблицу, а так решения принципиально не различаются
...
Рейтинг: 0 / 0
08.09.2022, 15:21
    #141550
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
а по рядомсубжу... крупные конторы с четким разделением доступа заставляют мыслить не юзая спт_валуес и т.п. Есть подобный лайфхак бредовый. Как обойти ограничение в 4гб макс размер БД используя SQL Express Edition? порадовал ответ - вместо пользовательской БД использовать БД мастер ))))
на мастере нет ограничения в 4гб )
...
Рейтинг: 1 / 0
Нравится: Просто Трёп
08.09.2022, 15:21
    #141551
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 15:03
[игнорируется]
Doublekey  08.09.2022, 15:00
[игнорируется]
Redd  08.09.2022, 14:52
[игнорируется]
Пулькин  08.09.2022, 14:45
[игнорируется]
Хуле до Сириуса доебались черти?
Да все норм, мы тут с Лехой, Барсиком и я задачки решаем. Остальные просто пиздаболы никчемны оказались [:biggrin2]
Ну и решайте если больше делать нехуй, я когда устану нихуя не делать может тоже посмотрю
[:lol], я параллельно все делаю. Прелесть, решаю задачи, слушаю музыку, срусь немного тут. Учись! Загруженный наш суперспец Костик260
Ну да, только думать не успеваешь. Я ж тебе сказал. я за эти 2 недели написал 15 строчек кода. сдал одну задачу, помог паре бухгалтерш и одному суппортеру. в сумме это заняло у меня часов 20 рабочего времени, Начальству честно написал что 50. Собственно это и был весь обьем порченной мне работы на 2 недели. Мне начальство сбрасывает только то что не хочет делать сам ну плюс поддержка тетков если у них там что-то ломается в базе их того что я уже знаю. Загрузка у меня 20 процентов где то правда вон в 5 вечера опять лекцию цитать .

Мне просто лень думать над синтетическими запросами, я лучше чем то другим займусь, сиськи посмотрю, на форуме посрусь, вздрочну.

Зачем мне параллельно занимать параллельной хуйней? я могу ей "страдать" последовательно.
...
Рейтинг: 0 / 0
08.09.2022, 15:21
    #141553
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  08.09.2022, 15:09
[игнорируется]
Redd  08.09.2022, 15:04
[игнорируется]
eNose  08.09.2022, 15:02
[игнорируется]
Redd  08.09.2022, 15:02
[игнорируется]
eNose  08.09.2022, 14:58
[игнорируется]
...
Дед-Папыхтет запусти у себя там для тестов сее, тока со 100к)
там дописать надо что б построчно работала

мне лень
Нуу [:sad]
declare @t table (num numeric(38, 0) not null);
insert @t values (123456789012345678901234567890), (123), (0);

select rr, sum(ss)
from
(
select rr, cast(substring(a.b, v.number+1, 1) as int) as ss
from (select num as rr, cast(num as varchar) as b from @t) a
join master..spt_values v on v.number < len(a.b)
where v.type = 'P'
) ttt

group by rr;
Не могу оценить скорости глазами, похоже на Барсуковское, пусть Леха выполнит
...
Рейтинг: 0 / 0
08.09.2022, 15:23
    #141555
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  08.09.2022, 15:19
[игнорируется]
W  08.09.2022, 15:15
[игнорируется]
eNose  08.09.2022, 15:13
[игнорируется]
W  08.09.2022, 15:13
[игнорируется]
eNose  08.09.2022, 15:12
[игнорируется]
...
master..spt_values - пидорастия какая-то
стандартная таблица же
ога, и еще БД northwind
только в мастере есть такая таблица.
лайфхак для некоторых этот спт_валуес, но на проде доступа к мастеру и этой таблицы у разрабов да и приклада нет. для таких задач обычно держат в пользовательской БД табличку с одной колонкой int и миллион или сколько нибудь значений - что бы в селектах джоинить на неё...
Но к задаче текущей по сути тоже самое что и в решении барсука. Барсук просто сделал временную таблицу такую наполнив предварительно, иноз полез в системную таблицу, а так решения принципиально не различаются
Я как то так было дело с табличкой из дохуя значений предлагал людям делать "распинсание" ну чтобы дать послеловательных в базу запросом набить :-) вместо With и рекурсии
...
Рейтинг: 0 / 0
08.09.2022, 15:24
    #141559
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 15:21
[игнорируется]
Не могу оценить скорости глазами, похоже на Барсуковское, пусть Леха выполнит
Дед-Папыхтет  08.09.2022, 15:19
[игнорируется]
только в мастере есть такая таблица.
лайфхак для некоторых этот спт_валуес, но на проде доступа к мастеру и этой таблицы у разрабов да и приклада нет. для таких задач обычно держат в пользовательской БД табличку с одной колонкой int и миллион или сколько нибудь значений - что бы в селектах джоинить на неё...
Но к задаче текущей по сути тоже самое что и в решении барсука. Барсук просто сделал временную таблицу такую наполнив предварительно, иноз полез в системную таблицу, а так решения принципиально не различаются
...
Рейтинг: 0 / 0
08.09.2022, 15:25
    #141560
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 15:23
[игнорируется]
Дед-Папыхтет  08.09.2022, 15:19
[игнорируется]
W  08.09.2022, 15:15
[игнорируется]
eNose  08.09.2022, 15:13
[игнорируется]
W  08.09.2022, 15:13
[игнорируется]
...
стандартная таблица же
ога, и еще БД northwind
только в мастере есть такая таблица.
лайфхак для некоторых этот спт_валуес, но на проде доступа к мастеру и этой таблицы у разрабов да и приклада нет. для таких задач обычно держат в пользовательской БД табличку с одной колонкой int и миллион или сколько нибудь значений - что бы в селектах джоинить на неё...
Но к задаче текущей по сути тоже самое что и в решении барсука. Барсук просто сделал временную таблицу такую наполнив предварительно, иноз полез в системную таблицу, а так решения принципиально не различаются
Я как то так было дело с табличкой из дохуя значений предлагал людям делать "распинсание" ну чтобы дать послеловательных в базу запросом набить :-) вместо With и рекурсии
Ну и это оптимальное решение
...
Рейтинг: 0 / 0
08.09.2022, 15:26
    #141562
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Это ты спизданул да и рад радешенек, а мне над запросом надо подумать, а мне лень тупо лень. может и подумаю позже

А страдание херней это не загрузка это страдание херней, я сейчас часто ей страдаю, потому что нихуя неохота :-)
...
Рейтинг: 0 / 0
08.09.2022, 15:26
    #141563
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  08.09.2022, 15:24
[игнорируется]
Redd  08.09.2022, 15:21
[игнорируется]
Не могу оценить скорости глазами, похоже на Барсуковское, пусть Леха выполнит
Дед-Папыхтет  08.09.2022, 15:19
[игнорируется]
только в мастере есть такая таблица.
лайфхак для некоторых этот спт_валуес, но на проде доступа к мастеру и этой таблицы у разрабов да и приклада нет. для таких задач обычно держат в пользовательской БД табличку с одной колонкой int и миллион или сколько нибудь значений - что бы в селектах джоинить на неё...
Но к задаче текущей по сути тоже самое что и в решении барсука. Барсук просто сделал временную таблицу такую наполнив предварительно, иноз полез в системную таблицу, а так решения принципиально не различаются
Во! Какие у меня глаза. Похлеще парсера и компилятора сиквела! [:biggrin2]
...
Рейтинг: 1 / 0
Нравится: Дед-Папыхтет
08.09.2022, 15:32
    #141565
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 15:26
[игнорируется]
Это ты спизданул да и рад радешенек, а мне над запросом надо подумать, а мне лень тупо лень. может и подумаю позже

А страдание херней это не загрузка это страдание херней, я сейчас часто ей страдаю, потому что нихуя неохота :-)
[:loud2] [:lol]
...
Рейтинг: 0 / 0
08.09.2022, 15:37
    #141572
Пулькин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 15:21
[игнорируется]
Redd  08.09.2022, 15:03
[игнорируется]
Doublekey  08.09.2022, 15:00
[игнорируется]
Redd  08.09.2022, 14:52
[игнорируется]
Пулькин  08.09.2022, 14:45
[игнорируется]
...
Да все норм, мы тут с Лехой, Барсиком и я задачки решаем. Остальные просто пиздаболы никчемны оказались [:biggrin2]
Ну и решайте если больше делать нехуй, я когда устану нихуя не делать может тоже посмотрю
[:lol], я параллельно все делаю. Прелесть, решаю задачи, слушаю музыку, срусь немного тут. Учись! Загруженный наш суперспец Костик260
Ну да, только думать не успеваешь. Я ж тебе сказал. я за эти 2 недели написал 15 строчек кода. сдал одну задачу, помог паре бухгалтерш и одному суппортеру. в сумме это заняло у меня часов 20 рабочего времени, Начальству честно написал что 50. Собственно это и был весь обьем порченной мне работы на 2 недели. Мне начальство сбрасывает только то что не хочет делать сам ну плюс поддержка тетков если у них там что-то ломается в базе их того что я уже знаю. Загрузка у меня 20 процентов где то правда вон в 5 вечера опять лекцию цитать .

Мне просто лень думать над синтетическими запросами, я лучше чем то другим займусь, сиськи посмотрю, на форуме посрусь, вздрочну.

Зачем мне параллельно занимать параллельной хуйней? я могу ей "страдать" последовательно.
Тебя скоро вычислят распиздяя и выебут [:grin]
...
Рейтинг: 0 / 0
08.09.2022, 15:42
    #141576
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
W  08.09.2022, 15:35
[игнорируется]
W  08.09.2022, 15:34
[игнорируется]
Дед-Папыхтет  08.09.2022, 15:24
[игнорируется]
Redd  08.09.2022, 15:21
[игнорируется]
Не могу оценить скорости глазами, похоже на Барсуковское, пусть Леха выполнит
Дед-Папыхтет  08.09.2022, 15:19
[игнорируется]
только в мастере есть такая таблица.
лайфхак для некоторых этот спт_валуес, но на проде доступа к мастеру и этой таблицы у разрабов да и приклада нет. для таких задач обычно держат в пользовательской БД табличку с одной колонкой int и миллион или сколько нибудь значений - что бы в селектах джоинить на неё...
Но к задаче текущей по сути тоже самое что и в решении барсука. Барсук просто сделал временную таблицу такую наполнив предварительно, иноз полез в системную таблицу, а так решения принципиально не различаются
оба решения - говно
полагаться на insert, или заполненную таблицу ранее - это пидорастия
[:popcorn], так и, и продолжение будет?
...
Рейтинг: 0 / 0
08.09.2022, 15:45
    #141578
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Пулькин  08.09.2022, 15:37
[игнорируется]
Doublekey  08.09.2022, 15:21
[игнорируется]
Redd  08.09.2022, 15:03
[игнорируется]
Doublekey  08.09.2022, 15:00
[игнорируется]
Redd  08.09.2022, 14:52
[игнорируется]
...
Ну и решайте если больше делать нехуй, я когда устану нихуя не делать может тоже посмотрю
[:lol], я параллельно все делаю. Прелесть, решаю задачи, слушаю музыку, срусь немного тут. Учись! Загруженный наш суперспец Костик260
Ну да, только думать не успеваешь. Я ж тебе сказал. я за эти 2 недели написал 15 строчек кода. сдал одну задачу, помог паре бухгалтерш и одному суппортеру. в сумме это заняло у меня часов 20 рабочего времени, Начальству честно написал что 50. Собственно это и был весь обьем порченной мне работы на 2 недели. Мне начальство сбрасывает только то что не хочет делать сам ну плюс поддержка тетков если у них там что-то ломается в базе их того что я уже знаю. Загрузка у меня 20 процентов где то правда вон в 5 вечера опять лекцию цитать .

Мне просто лень думать над синтетическими запросами, я лучше чем то другим займусь, сиськи посмотрю, на форуме посрусь, вздрочну.

Зачем мне параллельно занимать параллельной хуйней? я могу ей "страдать" последовательно.
Тебя скоро вычислят распиздяя и выебут [:grin]
пока я выполняю обьем возложенной на меня работы, не выебут.
...
Рейтинг: 0 / 0
08.09.2022, 16:21
    #141600
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
можно транслейтом заменить цифры на цифры с плюсом, в конце добавить ноль и выполнить динамический селект вида select 1+2+3+4+0
...
Изменено: 08.09.2022, 16:21 - eNose
Рейтинг: 0 / 0
08.09.2022, 16:24
    #141605
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  08.09.2022, 16:21
[игнорируется]
можно транслейтом заменить цифры на цифры с плюсом
риплейсом может?
...
Рейтинг: 0 / 0
08.09.2022, 16:25
    #141611
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  08.09.2022, 16:24
[игнорируется]
eNose  08.09.2022, 16:21
[игнорируется]
можно транслейтом заменить цифры на цифры с плюсом
риплейсом может?
да
...
Рейтинг: 0 / 0
08.09.2022, 22:39
    #142182
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
WITH seq
AS
(
SELECT 1 AS [rn]
UNION ALL
SELECT rn+1
FROM seq
WHERE rn <101
),
tbl as
(
select '1123456543467' sstr
UNION ALL
select '121233445678'
UNION ALL
select '66767654354356789'
)

select sstr,sum(onenum) summ from
(
select sstr,rn, cast(substring(sstr,rn,1) as int) onenum from tbl, seq where seq.rn <= len(tbl.sstr)
) tt
group by sstr
...
Изменено: 08.09.2022, 22:42 - Doublekey
Рейтинг: 0 / 0
08.09.2022, 22:47
    #142193
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  08.09.2022, 15:25
[игнорируется]
Doublekey  08.09.2022, 15:23
[игнорируется]
Дед-Папыхтет  08.09.2022, 15:19
[игнорируется]
W  08.09.2022, 15:15
[игнорируется]
eNose  08.09.2022, 15:13
[игнорируется]
...
ога, и еще БД northwind
только в мастере есть такая таблица.
лайфхак для некоторых этот спт_валуес, но на проде доступа к мастеру и этой таблицы у разрабов да и приклада нет. для таких задач обычно держат в пользовательской БД табличку с одной колонкой int и миллион или сколько нибудь значений - что бы в селектах джоинить на неё...
Но к задаче текущей по сути тоже самое что и в решении барсука. Барсук просто сделал временную таблицу такую наполнив предварительно, иноз полез в системную таблицу, а так решения принципиально не различаются
Я как то так было дело с табличкой из дохуя значений предлагал людям делать "распинсание" ну чтобы дать послеловательных в базу запросом набить :-) вместо With и рекурсии
Ну и это оптимальное решение
Я им и обьяснял. что в живой базе на 1000 процентов найдется хотя одна табличка из 1000 строк.
...
Рейтинг: 0 / 0
08.09.2022, 22:48
    #142194
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 22:47
[игнорируется]
Дед-Папыхтет  08.09.2022, 15:25
[игнорируется]
Doublekey  08.09.2022, 15:23
[игнорируется]
Дед-Папыхтет  08.09.2022, 15:19
[игнорируется]
W  08.09.2022, 15:15
[игнорируется]
...
только в мастере есть такая таблица.
лайфхак для некоторых этот спт_валуес, но на проде доступа к мастеру и этой таблицы у разрабов да и приклада нет. для таких задач обычно держат в пользовательской БД табличку с одной колонкой int и миллион или сколько нибудь значений - что бы в селектах джоинить на неё...
Но к задаче текущей по сути тоже самое что и в решении барсука. Барсук просто сделал временную таблицу такую наполнив предварительно, иноз полез в системную таблицу, а так решения принципиально не различаются
Я как то так было дело с табличкой из дохуя значений предлагал людям делать "распинсание" ну чтобы дать послеловательных в базу запросом набить :-) вместо With и рекурсии
Ну и это оптимальное решение
Я им и обьяснял. что в живой базе на 1000 процентов найдется хотя одна табличка из 1000 строк.
а чего не бусю тогда обюделся и донатить перестал? тока попробудй задонать уничтожу нахуй сразу
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
08.09.2022, 22:49
    #142197
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Посмотрел что я написал. 70 процентов барсуковского скрипта.
1 реализовать какую нить последовательность монотонную
2 взять целевую табличку,
3 заджоинить на нее последовательность ограничив количество повторений длиной строки в целевой
4 вывести сабстрингом циферки.
5 сгруппировать и засуммить
...
Рейтинг: 0 / 0
08.09.2022, 22:50
    #142198
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  08.09.2022, 22:48
[игнорируется]
Doublekey  08.09.2022, 22:47
[игнорируется]
Дед-Папыхтет  08.09.2022, 15:25
[игнорируется]
Doublekey  08.09.2022, 15:23
[игнорируется]
Дед-Папыхтет  08.09.2022, 15:19
[игнорируется]
...
Я как то так было дело с табличкой из дохуя значений предлагал людям делать "распинсание" ну чтобы дать послеловательных в базу запросом набить :-) вместо With и рекурсии
Ну и это оптимальное решение
Я им и обьяснял. что в живой базе на 1000 процентов найдется хотя одна табличка из 1000 строк.
а чего не бусю тогда обюделся и донатить перестал? тока попробудй задонать уничтожу нахуй сразу
Потому что буся отказался со мной выпить лично типа его еще упрашивать надо, а нахуй мне его упрашивать, он не баба я не пидор
...
Рейтинг: 0 / 0
08.09.2022, 22:51
    #142200
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 22:50
[игнорируется]
Буся  08.09.2022, 22:48
[игнорируется]
Doublekey  08.09.2022, 22:47
[игнорируется]
Дед-Папыхтет  08.09.2022, 15:25
[игнорируется]
Doublekey  08.09.2022, 15:23
[игнорируется]
...
Ну и это оптимальное решение
Я им и обьяснял. что в живой базе на 1000 процентов найдется хотя одна табличка из 1000 строк.
а чего не бусю тогда обюделся и донатить перестал? тока попробудй задонать уничтожу нахуй сразу
Потому что буся отказался со мной выпить лично типа его еще упрашивать надо, а нахуй мне его упрашивать, он не баба я не пидор
да похуй,мало ли занят был забей накуй
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
08.09.2022, 22:53
    #142205
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  08.09.2022, 22:51
[игнорируется]
Doublekey  08.09.2022, 22:50
[игнорируется]
Буся  08.09.2022, 22:48
[игнорируется]
Doublekey  08.09.2022, 22:47
[игнорируется]
Дед-Папыхтет  08.09.2022, 15:25
[игнорируется]
...
Я им и обьяснял. что в живой базе на 1000 процентов найдется хотя одна табличка из 1000 строк.
а чего не бусю тогда обюделся и донатить перестал? тока попробудй задонать уничтожу нахуй сразу
Потому что буся отказался со мной выпить лично типа его еще упрашивать надо, а нахуй мне его упрашивать, он не баба я не пидор
да похуй,мало ли занят был забей накуй
Ну вот и забил донатить
...
Рейтинг: 0 / 0
08.09.2022, 22:54
    #142208
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 22:53
[игнорируется]
Буся  08.09.2022, 22:51
[игнорируется]
Doublekey  08.09.2022, 22:50
[игнорируется]
Буся  08.09.2022, 22:48
[игнорируется]
Doublekey  08.09.2022, 22:47
[игнорируется]
...
а чего не бусю тогда обюделся и донатить перестал? тока попробудй задонать уничтожу нахуй сразу
Потому что буся отказался со мной выпить лично типа его еще упрашивать надо, а нахуй мне его упрашивать, он не баба я не пидор
да похуй,мало ли занят был забей накуй
Ну вот и забил донатить
умочка
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
08.09.2022, 23:16
    #142230
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
...
Рейтинг: 0 / 0
08.09.2022, 23:20
    #142234
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Цитата 
[игнорируется]
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр.
Взял пиффка почитал вашу тему на первой странице сломался.
ПапЫХТед конечно как всегда оригинален. Барсук предусмотрителен.

А Сириус как был долбоебом так и остался. ему говорят ЗАПРОСОМ!!!! а он хранимки с циклом пишет. Циклом то кажды иди... Redd сможет.
...
Рейтинг: 0 / 0
08.09.2022, 23:28
    #142238
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
нельзя, потом что ты андроеб и не более того.
...
Рейтинг: 0 / 0
08.09.2022, 23:29
    #142239
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 23:28
[игнорируется]
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
нельзя, потом что ты андроеб и не более того.
доминируешь типа?
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
08.09.2022, 23:30
    #142241
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 16:20
[игнорируется]
Дед-Папыхтет  07.09.2022, 16:19
[игнорируется]
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
В ТЗ было запросом а не функцией ))) и пара решений уже озвучена
Так я запросом и вывел)
а ты не выполняй скрипт своей UDF-ки и попробуй выполнить свой запрос :-)
...
Рейтинг: 0 / 0
08.09.2022, 23:31
    #142243
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  07.09.2022, 16:23
[игнорируется]
eNose  07.09.2022, 16:20
[игнорируется]
Redd  07.09.2022, 16:17
[игнорируется]
eNose  07.09.2022, 16:09
[игнорируется]
Redd [игнорируется] 

а почему не работаешь с числами как с числами?

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
num res
1234 10

1234/1000 -> 1
(1234 - 1*1000)/100 -> 2
(1234 - 1*1000 - 2*100)/10 -> 3
(1234 - 1*1000 - 2*100 - 3*10)/1 -> 4
тупа, быстро, чотко!)
Такой же как ты, тупой, быстрый, чоткий
...
Рейтинг: 0 / 0
08.09.2022, 23:32
    #142244
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  07.09.2022, 16:29
[игнорируется]
eNose  07.09.2022, 16:16
[игнорируется]
Пулькин  07.09.2022, 16:11
[игнорируется]
Въеби им Сириус базоебам обоссаным [:grin]
да!

переписывай свою хуйню.

сабстринги убирай нахуй.

юзай деление и вычитание.
Если уж на то пошло, то
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
или даже строка varchar(max) пох.
ЗЫ но тогда проверку надо на число реализовывать
и рекурсия на больше 100 не работает. а вот попыхтеДский вариант да забавен. не каждый догадается.
...
Рейтинг: 0 / 0
08.09.2022, 23:34
    #142247
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
PaNik  07.09.2022, 18:45
[игнорируется]
КГ/АМ
З.Ы. на телефоне нет менеджментстудии
Та не Сиря меня опять огорчил. весьма, сразу видно что нихуя не базоеб
...
Рейтинг: 0 / 0
08.09.2022, 23:34
    #142248
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 23:32
[игнорируется]
Горбатый ёж  07.09.2022, 16:29
[игнорируется]
eNose  07.09.2022, 16:16
[игнорируется]
Пулькин  07.09.2022, 16:11
[игнорируется]
Въеби им Сириус базоебам обоссаным [:grin]
да!

переписывай свою хуйню.

сабстринги убирай нахуй.

юзай деление и вычитание.
Если уж на то пошло, то
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
или даже строка varchar(max) пох.
ЗЫ но тогда проверку надо на число реализовывать
и рекурсия на больше 100 не работает. а вот попыхтеДский вариант да забавен. не каждый догадается.
у ниво на коленках даже сам фурункул сидел,видал жэ фотце?
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
08.09.2022, 23:35
    #142249
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  08.09.2022, 10:25
[игнорируется]
Дед-Папыхтет  08.09.2022, 09:13
[игнорируется]
Redd  07.09.2022, 23:53
[игнорируется]
Да и у Барсука тоже не одним, а ещё и через временные таблицы
У барсука cte (with) - а mssql это встраиваемый подзапрос без временных таблиц, если ты про это. В других СУБД типа постгрес да cte это сразу временная таблица.

А табличная переменная это аналог самой таблицы
Наверное, не ибу чо это, у меня нет мсскл, но все у него там какое-то пиздос)
Вот потому что ты не ибешь клюв и прикрой
...
Рейтинг: 0 / 0
09.09.2022, 08:26
    #142438
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 22:49
[игнорируется]
Посмотрел что я написал. 70 процентов барсуковского скрипта.
1 реализовать какую нить последовательность монотонную
2 взять целевую табличку,
3 заджоинить на нее последовательность ограничив количество повторений длиной строки в целевой
4 вывести сабстрингом циферки.
5 сгруппировать и засуммить
Ну что животное, так и не смог за 1.5 дня ничего высрать путного по теме.. но много напиздел тут. А ещё базаебом себя называешь, 260 какой-то тебе платит! Нее, ты пиздабол, алкаш, 60.
...
Рейтинг: 0 / 0
09.09.2022, 08:35
    #142446
Пулькин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 22:39
[игнорируется]
WITH seq
AS
(
SELECT 1 AS [rn]
UNION ALL
SELECT rn+1
FROM seq
WHERE rn <101
),
tbl as
(
select '1123456543467' sstr
UNION ALL
select '121233445678'
UNION ALL
select '66767654354356789'
)

select sstr,sum(onenum) summ from
(
select sstr,rn, cast(substring(sstr,rn,1) as int) onenum from tbl, seq where seq.rn <= len(tbl.sstr)
) tt
group by sstr
Какой то пиздец
...
Рейтинг: 0 / 0
09.09.2022, 08:57
    #142456
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 08:26
[игнорируется]
260 какой-то тебе платит
Прикинь!
...
Рейтинг: 0 / 0
09.09.2022, 09:02
    #142461
Артефакт
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
мне 270 недавно предлагали - не пошел - привык к удаленке
...
Рейтинг: 0 / 0
09.09.2022, 09:37
    #142480
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 08:26
[игнорируется]
Doublekey  08.09.2022, 22:49
[игнорируется]
Посмотрел что я написал. 70 процентов барсуковского скрипта.
1 реализовать какую нить последовательность монотонную
2 взять целевую табличку,
3 заджоинить на нее последовательность ограничив количество повторений длиной строки в целевой
4 вывести сабстрингом циферки.
5 сгруппировать и засуммить
Ну что животное, так и не смог за 1.5 дня ничего высрать путного по теме.. но много напиздел тут. А ещё базаебом себя называешь, 260 какой-то тебе платит! Нее, ты пиздабол, алкаш, 60.
А ты чо слепошара чтоле? Выше высрано прям на мсскуле. И дана еще пара рекомендаций на другие решения
...
Рейтинг: 0 / 0
09.09.2022, 09:38
    #142481
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Пулькин  09.09.2022, 08:35
[игнорируется]
Doublekey  08.09.2022, 22:39
[игнорируется]
WITH seq
AS
(
SELECT 1 AS [rn]
UNION ALL
SELECT rn+1
FROM seq
WHERE rn <101
),
tbl as
(
select '1123456543467' sstr
UNION ALL
select '121233445678'
UNION ALL
select '66767654354356789'
)

select sstr,sum(onenum) summ from
(
select sstr,rn, cast(substring(sstr,rn,1) as int) onenum from tbl, seq where seq.rn <= len(tbl.sstr)
) tt
group by sstr
Какой то пиздец
Зато работает
...
Рейтинг: 0 / 0
09.09.2022, 09:40
    #142483
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Артефакт  09.09.2022, 09:02
[игнорируется]
мне 270 недавно предлагали - не пошел - привык к удаленке
Меня звали на собсес на 350. Но я уже боюс нах
...
Рейтинг: 0 / 0
09.09.2022, 09:46
    #142489
Пулькин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 09:38
[игнорируется]
Пулькин  09.09.2022, 08:35
[игнорируется]
Doublekey  08.09.2022, 22:39
[игнорируется]
WITH seq
AS
(
SELECT 1 AS [rn]
UNION ALL
SELECT rn+1
FROM seq
WHERE rn <101
),
tbl as
(
select '1123456543467' sstr
UNION ALL
select '121233445678'
UNION ALL
select '66767654354356789'
)

select sstr,sum(onenum) summ from
(
select sstr,rn, cast(substring(sstr,rn,1) as int) onenum from tbl, seq where seq.rn <= len(tbl.sstr)
) tt
group by sstr
Какой то пиздец
Зато работает
Ну у меня тоже работает я правда не стал тогда с ораклом лезть ато обосрали бы щас то уже похуй [:grin]
C4DE92AF-B168-48C7-A69F-9F283D09601D.jpeg
...
Рейтинг: 0 / 0
09.09.2022, 10:05
    #142504
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Пулькин  09.09.2022, 09:46
[игнорируется]
Doublekey  09.09.2022, 09:38
[игнорируется]
Пулькин  09.09.2022, 08:35
[игнорируется]
Doublekey  08.09.2022, 22:39
[игнорируется]
WITH seq
AS
(
SELECT 1 AS [rn]
UNION ALL
SELECT rn+1
FROM seq
WHERE rn <101
),
tbl as
(
select '1123456543467' sstr
UNION ALL
select '121233445678'
UNION ALL
select '66767654354356789'
)

select sstr,sum(onenum) summ from
(
select sstr,rn, cast(substring(sstr,rn,1) as int) onenum from tbl, seq where seq.rn <= len(tbl.sstr)
) tt
group by sstr
Какой то пиздец
Зато работает
Ну у меня тоже работает я правда не стал тогда с ораклом лезть ато обосрали бы щас то уже похуй [:grin]
C4DE92AF-B168-48C7-A69F-9F283D09601D.jpeg
Папыхстайл. Как я говорил уже я до такого не додумался старею я уже, первая мысль что это была проверка на рекурсию. любят ее на собеседах .
...
Рейтинг: 0 / 0
09.09.2022, 10:19
    #142518
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 10:05
[игнорируется]
Папыхстайл
ну а там немного вариантов решения В ЗАПРОСЕ
...
Рейтинг: 0 / 0
09.09.2022, 10:47
    #142538
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 09:37
[игнорируется]
Redd  09.09.2022, 08:26
[игнорируется]
Doublekey  08.09.2022, 22:49
[игнорируется]
Посмотрел что я написал. 70 процентов барсуковского скрипта.
1 реализовать какую нить последовательность монотонную
2 взять целевую табличку,
3 заджоинить на нее последовательность ограничив количество повторений длиной строки в целевой
4 вывести сабстрингом циферки.
5 сгруппировать и засуммить
Ну что животное, так и не смог за 1.5 дня ничего высрать путного по теме.. но много напиздел тут. А ещё базаебом себя называешь, 260 какой-то тебе платит! Нее, ты пиздабол, алкаш, 60.
А ты чо слепошара чтоле? Выше высрано прям на мсскуле. И дана еще пара рекомендаций на другие решения
Какую-то херню написал в стиле Барсука, спустя 1.5 дня! [:biggrin2]
Самый быстрый мой и Лехин вариант. Лехин должен жрать больше памяти, но побыстрее.
...
Рейтинг: 0 / 0
09.09.2022, 11:09
    #142578
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 10:19
[игнорируется]
Doublekey  09.09.2022, 10:05
[игнорируется]
Папыхстайл
ну а там немного вариантов решения В ЗАПРОСЕ
Ну да. я шо против шоле? У меня Барсикстайл посути. просто лайт вариант и без тотальной защиты.
...
Рейтинг: 0 / 0
09.09.2022, 11:12
    #142581
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 10:47
[игнорируется]
Doublekey  09.09.2022, 09:37
[игнорируется]
Redd  09.09.2022, 08:26
[игнорируется]
Doublekey  08.09.2022, 22:49
[игнорируется]
Посмотрел что я написал. 70 процентов барсуковского скрипта.
1 реализовать какую нить последовательность монотонную
2 взять целевую табличку,
3 заджоинить на нее последовательность ограничив количество повторений длиной строки в целевой
4 вывести сабстрингом циферки.
5 сгруппировать и засуммить
Ну что животное, так и не смог за 1.5 дня ничего высрать путного по теме.. но много напиздел тут. А ещё базаебом себя называешь, 260 какой-то тебе платит! Нее, ты пиздабол, алкаш, 60.
А ты чо слепошара чтоле? Выше высрано прям на мсскуле. И дана еще пара рекомендаций на другие решения
Какую-то херню написал в стиле Барсука, спустя 1.5 дня! [:biggrin2]
Самый быстрый мой и Лехин вариант. Лехин должен жрать больше памяти, но побыстрее.
Твой вариант это вариант через жопу.
1 переключение контекста это хуево тем более на UDF
2 просили по ТЗ запросом но ты же программист ты так видишь
3 если брать за правило что запрос исполняется в реальном окружении то рекурсию можно убрать
4 Попыхтед подтвердил разумность моего варианта

Но ты как долбоеб как обычно будешь против

Когда ты нормально научишься писать задачи по тз, а не так как видишь может будет норм

Ты не понимаешь сути поставленной задачи. в ТЗ написано как решать, а ты меняешь решение не согласовав с заказчиком. это хуево. это значит к тебе надо еще манагера приставлять. Ты не понимаешь зачем эта задача вообще поставлена. формально ты ее решил, но смысла от такого решения в рамках постановки никакой потому что ты долбоклюй.
...
Изменено: 09.09.2022, 11:15 - Doublekey
Рейтинг: 0 / 0
09.09.2022, 11:19
    #142595
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 11:12
[игнорируется]
Твой вариант это вариант через жопу.
1 переключение контекста это хуево тем более на UDF
2 просили по ТЗ запросом но ты же программист ты так видишь
Это мозги у тебя через жопу.
1. Если можно написать функцию, значит можно и нужно. Код ахуенно читабелен. А вой гавно-гавном.
2. По тз нет ничего, что нельзя функцию. Что нужно чары, нет ничего. Написано или, или и запросом. Все так и решено.
Doublekey  09.09.2022, 11:12
[игнорируется]
Ты не понимаешь зачем эта задача вообще поставлена. формально ты ее решил, но смысла от такого решения в рамках постановки никакой потому что ты долбоклюй.
Да, канешно, реплйсить 10ки раз символы. Это пиздец решение! Уровень архитектора)
...
Рейтинг: 0 / 0
09.09.2022, 11:23
    #142602
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
Недавно озаботился такой псевдоколонкой. Есть, но с ней не все так просто.
...
Рейтинг: 0 / 0
09.09.2022, 11:47
    #142642
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 11:19
[игнорируется]
реплйсить 10ки раз символы. Это пиздец решение!
на самом деле надо тупо смотреть план выполнения и измерить время на реальной туевой хуче данных.

посмотри исходники линуха - там всё сплошь на ифах и готах.
потому что так блеать быстрее и понятней оптимизатору.
...
Рейтинг: 0 / 0
09.09.2022, 11:50
    #142649
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 11:47
[игнорируется]
на самом деле надо тупо смотреть план выполнения и измерить время на реальной туевой хуче данных.
Леха и я все уже померили. Места распределились так: номер 1 Леха, номер 2 я, номер 3 Барсук. Леха тестил на строках, я на интах (типа).
...
Рейтинг: 0 / 0
09.09.2022, 11:52
    #142657
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 11:19
[игнорируется]
Doublekey  09.09.2022, 11:12
[игнорируется]
Твой вариант это вариант через жопу.
1 переключение контекста это хуево тем более на UDF
2 просили по ТЗ запросом но ты же программист ты так видишь
Это мозги у тебя через жопу.
1. Если можно написать функцию, значит можно и нужно. Код ахуенно читабелен. А вой гавно-гавном.
2. По тз нет ничего, что нельзя функцию. Что нужно чары, нет ничего. Написано или, или и запросом. Все так и решено.
Doublekey  09.09.2022, 11:12
[игнорируется]
Ты не понимаешь зачем эта задача вообще поставлена. формально ты ее решил, но смысла от такого решения в рамках постановки никакой потому что ты долбоклюй.
Да, канешно, реплйсить 10ки раз символы. Это пиздец решение! Уровень архитектора)
Где ты кстати у меня реплейсы нашел? Болезный а? Реплейсы у попЫХТЕда, которого ты кстати сейчас хвалишь за решение.
...
Рейтинг: 0 / 0
09.09.2022, 11:53
    #142661
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 11:23
[игнорируется]
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
Недавно озаботился такой псевдоколонкой. Есть, но с ней не все так просто.
не ну я не про row_number() если что
...
Рейтинг: 0 / 0
09.09.2022, 11:53
    #142665
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 11:50
[игнорируется]
eNose  09.09.2022, 11:47
[игнорируется]
на самом деле надо тупо смотреть план выполнения и измерить время на реальной туевой хуче данных.
Леха и я все уже померили. Места распределились так: номер 1 Леха, номер 2 я, номер 3 Барсук. Леха тестил на строках, я на интах (типа).
Так вот у лехи и есть твои самые самые реплейсы.

А у тебя задание с нарушением ТЗ выполнено так каждый реддиот может.
...
Рейтинг: 0 / 0
09.09.2022, 11:56
    #142668
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
на самом деле конечно ненадо создавать таблицу и пхать в неё милиард строк.
можно сделать функцию-генератор, типа такого (не проверял, писал в блокноте, возможно хуй заработает):

CREATE FUNCTION Num_Gen(@MinNum int, @MaxNum int)
RETURNS TABLE AS
RETURN
(
WITH TT AS (
SELECT @MinNum AS NN
UNION ALL
SELECT (R.NN+1)
FROM TT R
WHERE (R.NN+1) <= @MaxNum
)

SELECT TT.NN FROM TT
)
...
Изменено: 09.09.2022, 11:59 - eNose
Рейтинг: 0 / 0
09.09.2022, 12:00
    #142677
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
WITH TT AS (
SELECT 0 AS NN
UNION ALL
SELECT (R.NN+1)
FROM TT R
WHERE (R.NN+1) <= 3
)
SELECT TT.NN FROM TT

0
1
2
3

работает
...
Рейтинг: 0 / 0
09.09.2022, 12:02
    #142683
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 11:56
[игнорируется]
на самом деле конечно ненадо создавать таблицу и пхать в неё милиард строк.
можно сделать функцию-генератор, типа такого (не проверял, писал в блокноте, возможно хуй заработает):

CREATE FUNCTION Num_Gen(@MinNum int, @MaxNum int)
RETURNS TABLE AS
RETURN
(
WITH TT AS (
SELECT @MinNum AS NN
UNION ALL
SELECT (R.NN+1)
FROM TT R
WHERE (R.NN+1) <= @MaxNum
)

SELECT TT.NN FROM TT
)
В ТЗ не сказано что надо делать какую то функцию, в тз сказано сделать это запросом без создания каких то новых обьектов

Я понимаю у Сириуса глаз нет, он то чего ему непонятно не видит и делает по своему. но ты то Инозий?

У меня вообще решение без создания каких либо таблиц, ибо они нахуй не нужны в варианте до 100. да думаю и в варианте за сто тоже если их нето до того
...
Рейтинг: 0 / 0
09.09.2022, 12:02
    #142684
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 11:52
[игнорируется]
Redd  09.09.2022, 11:19
[игнорируется]
Doublekey  09.09.2022, 11:12
[игнорируется]
Твой вариант это вариант через жопу.
1 переключение контекста это хуево тем более на UDF
2 просили по ТЗ запросом но ты же программист ты так видишь
Это мозги у тебя через жопу.
1. Если можно написать функцию, значит можно и нужно. Код ахуенно читабелен. А вой гавно-гавном.
2. По тз нет ничего, что нельзя функцию. Что нужно чары, нет ничего. Написано или, или и запросом. Все так и решено.
Doublekey  09.09.2022, 11:12
[игнорируется]
Ты не понимаешь зачем эта задача вообще поставлена. формально ты ее решил, но смысла от такого решения в рамках постановки никакой потому что ты долбоклюй.
Да, канешно, реплйсить 10ки раз символы. Это пиздец решение! Уровень архитектора)
Где ты кстати у меня реплейсы нашел? Болезный а? Реплейсы у попЫХТЕда, которого ты кстати сейчас хвалишь за решение.
Да, неужели! Спс кэп. Ты пьяный сейчас?
...
Рейтинг: 0 / 0
09.09.2022, 12:03
    #142685
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 12:02
[игнорируется]
Doublekey  09.09.2022, 11:52
[игнорируется]
Redd  09.09.2022, 11:19
[игнорируется]
Doublekey  09.09.2022, 11:12
[игнорируется]
Твой вариант это вариант через жопу.
1 переключение контекста это хуево тем более на UDF
2 просили по ТЗ запросом но ты же программист ты так видишь
Это мозги у тебя через жопу.
1. Если можно написать функцию, значит можно и нужно. Код ахуенно читабелен. А вой гавно-гавном.
2. По тз нет ничего, что нельзя функцию. Что нужно чары, нет ничего. Написано или, или и запросом. Все так и решено.
Doublekey  09.09.2022, 11:12
[игнорируется]
Ты не понимаешь зачем эта задача вообще поставлена. формально ты ее решил, но смысла от такого решения в рамках постановки никакой потому что ты долбоклюй.
Да, канешно, реплйсить 10ки раз символы. Это пиздец решение! Уровень архитектора)
Где ты кстати у меня реплейсы нашел? Болезный а? Реплейсы у попЫХТЕда, которого ты кстати сейчас хвалишь за решение.
Да, неужели! Спс кэп. Ты пьяный сейчас?
У меня ты где нашел чтобы мне их предьявлять? А я вот вижу у тебя нарушение ТЗ
...
Рейтинг: 0 / 0
09.09.2022, 12:03
    #142686
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 11:53
[игнорируется]
А у тебя задание с нарушением ТЗ выполнено так каждый реддиот может.
Не тебе пиздаболу решать, как оно сделано. Ты вообще ничего не смог, дно.
...
Рейтинг: 0 / 0
09.09.2022, 12:05
    #142688
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Весёлый топик
...
Рейтинг: 0 / 0
09.09.2022, 12:08
    #142697
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 12:02
[игнорируется]
В ТЗ
да уже похуй всем на это долбоебическое ТЗ с такой же долбоебической задачей!

обсуждаем идеи.
...
Рейтинг: 0 / 0
09.09.2022, 12:09
    #142700
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
"Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр."

кстати нет ограничений на создание процедур и функций
...
Рейтинг: 0 / 0
09.09.2022, 12:12
    #142702
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 12:03
[игнорируется]
Doublekey  09.09.2022, 11:53
[игнорируется]
А у тебя задание с нарушением ТЗ выполнено так каждый реддиот может.
Не тебе пиздаболу решать, как оно сделано. Ты вообще ничего не смог, дно.
Я тебе код скинул пиздоклюй, то ты почему то его в упор видеть не хочешь. потому что у тебя вместо глаз рюмки.

А вот по первому предложению, вот поэтому ты и нищеброд, потому что не понимаешь пожелания бизнес- заказчика так что лучше работай здесь до пенсии.
...
Рейтинг: 0 / 0
09.09.2022, 12:13
    #142705
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 12:08
[игнорируется]
Doublekey  09.09.2022, 12:02
[игнорируется]
В ТЗ
да уже похуй всем на это долбоебическое ТЗ с такой же долбоебической задачей!

обсуждаем идеи.
Нуу да, для программиста в бизнес конторе хороший посыл.

Инозий через цикл это любой идиот сделает типа редда. тупо алгоритмический цикл как в дельфях закухярил и гордиццо.
...
Рейтинг: 0 / 0
09.09.2022, 12:13
    #142708
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 12:09
[игнорируется]
"Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр."

кстати нет ограничений на создание процедур и функций
там написано про запросом. то есть механизм нужно реализовать в запросе.
...
Рейтинг: 0 / 0
09.09.2022, 12:19
    #142716
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 12:12
[игнорируется]
А вот по первому предложению, вот поэтому ты и нищеброд, потому что не понимаешь пожелания бизнес- заказчика так что лучше работай здесь до пенсии.
Ты считаешь из одного числа делать нцать строк и суммировать через группировку - это лучшее решение? Или реплейсить 10ки раз символы - это лучшее решение?
Твой тупой мозг считает эти решения лучшими?
...
Рейтинг: 0 / 0
09.09.2022, 12:31
    #142723
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 12:19
[игнорируется]
Doublekey  09.09.2022, 12:12
[игнорируется]
А вот по первому предложению, вот поэтому ты и нищеброд, потому что не понимаешь пожелания бизнес- заказчика так что лучше работай здесь до пенсии.
Ты считаешь из одного числа делать нцать строк и суммировать через группировку - это лучшее решение? Или реплейсить 10ки раз символы - это лучшее решение?
Твой тупой мозг считает эти решения лучшими?
Ничем от цикла не отличается, кстати.

От твоего ебанутого цикла с сабстрингами.

Нужна скорость - делай математикой.
...
Рейтинг: 0 / 0
09.09.2022, 12:34
    #142728
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 12:03
[игнорируется]
Doublekey  09.09.2022, 11:53
[игнорируется]
А у тебя задание с нарушением ТЗ выполнено так каждый реддиот может.
Не тебе пиздаболу решать, как оно сделано. Ты вообще ничего не смог, дно.
Специальной для пиздоклюев тебе оракловый вариант без рекурсивного WITH на неограниченный размер числа
верхний виз это целевая таблица которая типа уже есть в базе.

WITH tbl as (
select '1123456543467' sstr FROM dual
UNION ALL
select '121233445678' FROM dual
UNION ALL
select '66767654354356789' FROM dual
)

select sstr, sum(to_number(substr(sstr,rn,1))) onn
from tbl,
(SELECT rownum as rn FROM dual CONNECT BY level <= 256) seq
where seq.rn <= length(tbl.sstr)
group by sstr
...
Рейтинг: 0 / 0
09.09.2022, 12:36
    #142731
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 12:19
[игнорируется]
Doublekey  09.09.2022, 12:12
[игнорируется]
А вот по первому предложению, вот поэтому ты и нищеброд, потому что не понимаешь пожелания бизнес- заказчика так что лучше работай здесь до пенсии.
Ты считаешь из одного числа делать нцать строк и суммировать через группировку - это лучшее решение? Или реплейсить 10ки раз символы - это лучшее решение?
Твой тупой мозг считает эти решения лучшими?
Я считаю что если надо сделать запросом то надо сделать запросом без переключения контекста, создания новых процедур и выдачи на них грантов.

Если бы это надо было сделать не только запросом то можно это делать через функцию, хотя ты сам функции не признаешь.

И кстати на собеседе тебе бы надо было еще обосновать почему именно через функцию

Два решения выше лучшими считает работодатель и эксплейн план. сказано сделать запросом значит надо сделать запросом.
...
Рейтинг: 0 / 0
09.09.2022, 12:38
    #142732
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 12:31
[игнорируется]
Redd  09.09.2022, 12:19
[игнорируется]
Doublekey  09.09.2022, 12:12
[игнорируется]
А вот по первому предложению, вот поэтому ты и нищеброд, потому что не понимаешь пожелания бизнес- заказчика так что лучше работай здесь до пенсии.
Ты считаешь из одного числа делать нцать строк и суммировать через группировку - это лучшее решение? Или реплейсить 10ки раз символы - это лучшее решение?
Твой тупой мозг считает эти решения лучшими?
Ничем от цикла не отличается, кстати.

От твоего ебанутого цикла с сабстрингами.

Нужна скорость - делай математикой.
и кстати да он также как и я ебет число сабстрингами, просто не в запросе а в программном цикле потому что он долбоеб,
...
Рейтинг: 1 / 0
Нравится: eNose
09.09.2022, 12:56
    #142765
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 11:56
[игнорируется]
на самом деле конечно ненадо создавать таблицу и пхать в неё милиард строк.
можно сделать функцию-генератор, типа такого (не проверял, писал в блокноте, возможно хуй заработает):

CREATE FUNCTION Num_Gen(@MinNum int, @MaxNum int)
RETURNS TABLE AS
RETURN
(
WITH TT AS (
SELECT @MinNum AS NN
UNION ALL
SELECT (R.NN+1)
FROM TT R
WHERE (R.NN+1) <= @MaxNum
)

SELECT TT.NN FROM TT
)
Код: SQL
1.
2.
select *
from openjson( '[' + replicate( '1,', 999) + '1]' ) as
чем тебе не генератор 1000 строк? )
...
Изменено: 09.09.2022, 12:59 - Дед-Папыхтет
Рейтинг: 0 / 0
09.09.2022, 13:23
    #142816
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 12:56
[игнорируется]
eNose  09.09.2022, 11:56
[игнорируется]
на самом деле конечно ненадо создавать таблицу и пхать в неё милиард строк.
можно сделать функцию-генератор, типа такого (не проверял, писал в блокноте, возможно хуй заработает):

CREATE FUNCTION Num_Gen(@MinNum int, @MaxNum int)
RETURNS TABLE AS
RETURN
(
WITH TT AS (
SELECT @MinNum AS NN
UNION ALL
SELECT (R.NN+1)
FROM TT R
WHERE (R.NN+1) <= @MaxNum
)

SELECT TT.NN FROM TT
)
Код: SQL
1.
2.
select *
from openjson( '[' + replicate( '1,', 999) + '1]' ) as
чем тебе не генератор 1000 строк? )
с джесоном когда научился работать скульсервер? не так давно вроде.
...
Рейтинг: 0 / 0
09.09.2022, 13:24
    #142819
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 13:23
[игнорируется]
Дед-Папыхтет  09.09.2022, 12:56
[игнорируется]
eNose  09.09.2022, 11:56
[игнорируется]
на самом деле конечно ненадо создавать таблицу и пхать в неё милиард строк.
можно сделать функцию-генератор, типа такого (не проверял, писал в блокноте, возможно хуй заработает):

CREATE FUNCTION Num_Gen(@MinNum int, @MaxNum int)
RETURNS TABLE AS
RETURN
(
WITH TT AS (
SELECT @MinNum AS NN
UNION ALL
SELECT (R.NN+1)
FROM TT R
WHERE (R.NN+1) <= @MaxNum
)

SELECT TT.NN FROM TT
)
Код: SQL
1.
2.
select *
from openjson( '[' + replicate( '1,', 999) + '1]' ) as
чем тебе не генератор 1000 строк? )
с джесоном когда научился работать скульсервер? не так давно вроде.
2016 вроде, я тут месяц назад крутил джисона. типа залтурка наклевывалась.
...
Рейтинг: 1 / 0
Нравится: PaNik
09.09.2022, 13:25
    #142821
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Чотам наш пиздоклюй работать пошел?
...
Рейтинг: 0 / 0
09.09.2022, 13:25
    #142822
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 13:24
[игнорируется]
2016 вроде
Applies to: SQL Server 2016 (13.x) and later

ага
...
Рейтинг: 0 / 0
09.09.2022, 13:38
    #142832
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 12:31
[игнорируется]
Redd  09.09.2022, 12:19
[игнорируется]
Doublekey  09.09.2022, 12:12
[игнорируется]
А вот по первому предложению, вот поэтому ты и нищеброд, потому что не понимаешь пожелания бизнес- заказчика так что лучше работай здесь до пенсии.
Ты считаешь из одного числа делать нцать строк и суммировать через группировку - это лучшее решение? Или реплейсить 10ки раз символы - это лучшее решение?
Твой тупой мозг считает эти решения лучшими?
Ничем от цикла не отличается, кстати.

От твоего ебанутого цикла с сабстрингами.

Нужна скорость - делай математикой.
Тормознее только.
И остальных тоже сабстринги, а у некоторых реплейсы!
...
Рейтинг: 0 / 0
09.09.2022, 13:41
    #142839
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
select *,%%physloc%%
from dbo.test_table

некая альтернатива
...
Рейтинг: 0 / 0
09.09.2022, 13:42
    #142841
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 13:38
[игнорируется]
eNose  09.09.2022, 12:31
[игнорируется]
Redd  09.09.2022, 12:19
[игнорируется]
Doublekey  09.09.2022, 12:12
[игнорируется]
А вот по первому предложению, вот поэтому ты и нищеброд, потому что не понимаешь пожелания бизнес- заказчика так что лучше работай здесь до пенсии.
Ты считаешь из одного числа делать нцать строк и суммировать через группировку - это лучшее решение? Или реплейсить 10ки раз символы - это лучшее решение?
Твой тупой мозг считает эти решения лучшими?
Ничем от цикла не отличается, кстати.

От твоего ебанутого цикла с сабстрингами.

Нужна скорость - делай математикой.
Тормознее только.
И остальных тоже сабстринги, а у некоторых реплейсы!
но у них то в запросе!
а у тебя в функции. так сделай же по человечески!
...
Рейтинг: 0 / 0
09.09.2022, 13:44
    #142846
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 13:42
[игнорируется]
Redd  09.09.2022, 13:38
[игнорируется]
eNose  09.09.2022, 12:31
[игнорируется]
Redd  09.09.2022, 12:19
[игнорируется]
Doublekey  09.09.2022, 12:12
[игнорируется]
...
Ты считаешь из одного числа делать нцать строк и суммировать через группировку - это лучшее решение? Или реплейсить 10ки раз символы - это лучшее решение?
Твой тупой мозг считает эти решения лучшими?
Ничем от цикла не отличается, кстати.

От твоего ебанутого цикла с сабстрингами.

Нужна скорость - делай математикой.
Тормознее только.
И остальных тоже сабстринги, а у некоторых реплейсы!
но у них то в запросе!
а у тебя в функции. так сделай же по человечески!
Мне мой вариант нравится. Все понятно, дорабатывать легко, читабельно. Работает на сотые секунды медленнее реплесов.
...
Рейтинг: 0 / 0
09.09.2022, 13:48
    #142849
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 13:44
[игнорируется]
eNose  09.09.2022, 13:42
[игнорируется]
Redd  09.09.2022, 13:38
[игнорируется]
eNose  09.09.2022, 12:31
[игнорируется]
Redd  09.09.2022, 12:19
[игнорируется]
...
Ничем от цикла не отличается, кстати.

От твоего ебанутого цикла с сабстрингами.

Нужна скорость - делай математикой.
Тормознее только.
И остальных тоже сабстринги, а у некоторых реплейсы!
но у них то в запросе!
а у тебя в функции. так сделай же по человечески!
Мне мой вариант нравится. Все понятно, дорабатывать легко, читабельно. Работает на сотые секунды медленнее реплесов.
на самом деле, по ТЗ было сделать запросом... без функций доп таблиц и т.п. - просто один запрос...

Но единственный плюс в функции, то что можно сделать поле вычисляемое материализованное в итоге если вдруг такое потребуется на проде, с материализованным полем будет макс перфоманс, хотя и реплейсы так же можно материализовать, да и доп таблицу + inner join + group by можно вьюху материализовать... но это уже за рамках этой задачи ))) Материализованная колонка или вьюха = макс перфоманс, еще если и в индексах это поле будет
...
Рейтинг: 0 / 0
09.09.2022, 14:03
    #142860
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 13:48
[игнорируется]
Redd  09.09.2022, 13:44
[игнорируется]
eNose  09.09.2022, 13:42
[игнорируется]
Redd  09.09.2022, 13:38
[игнорируется]
eNose  09.09.2022, 12:31
[игнорируется]
...
Тормознее только.
И остальных тоже сабстринги, а у некоторых реплейсы!
но у них то в запросе!
а у тебя в функции. так сделай же по человечески!
Мне мой вариант нравится. Все понятно, дорабатывать легко, читабельно. Работает на сотые секунды медленнее реплесов.
на самом деле, по ТЗ было сделать запросом... без функций доп таблиц и т.п. - просто один запрос...

Но единственный плюс в функции, то что можно сделать поле вычисляемое материализованное в итоге если вдруг такое потребуется на проде, с материализованным полем будет макс перфоманс, хотя и реплейсы так же можно материализовать, да и доп таблицу + inner join + group by можно вьюху материализовать... но это уже за рамках этой задачи ))) Материализованная колонка или вьюха = макс перфоманс, еще если и в индексах это поле будет
Да намально и так сойдёт)
Ээ, одним, сложна сразу. Ты лучше сразу так не говори собеседование. Ну чтоб на взлете не гасить)
...
Рейтинг: 0 / 0
09.09.2022, 14:08
    #142869
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 13:44
[игнорируется]
eNose  09.09.2022, 13:42
[игнорируется]
Redd  09.09.2022, 13:38
[игнорируется]
eNose  09.09.2022, 12:31
[игнорируется]
Redd  09.09.2022, 12:19
[игнорируется]
...
Ничем от цикла не отличается, кстати.

От твоего ебанутого цикла с сабстрингами.

Нужна скорость - делай математикой.
Тормознее только.
И остальных тоже сабстринги, а у некоторых реплейсы!
но у них то в запросе!
а у тебя в функции. так сделай же по человечески!
Мне мой вариант нравится. Все понятно, дорабатывать легко, читабельно. Работает на сотые секунды медленнее реплесов.
Ну еще бы тебе твой вариант не нравился.
...
Рейтинг: 0 / 0
09.09.2022, 14:09
    #142870
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 13:48
[игнорируется]
Redd  09.09.2022, 13:44
[игнорируется]
eNose  09.09.2022, 13:42
[игнорируется]
Redd  09.09.2022, 13:38
[игнорируется]
eNose  09.09.2022, 12:31
[игнорируется]
...
Тормознее только.
И остальных тоже сабстринги, а у некоторых реплейсы!
но у них то в запросе!
а у тебя в функции. так сделай же по человечески!
Мне мой вариант нравится. Все понятно, дорабатывать легко, читабельно. Работает на сотые секунды медленнее реплесов.
на самом деле, по ТЗ было сделать запросом... без функций доп таблиц и т.п. - просто один запрос...

Но единственный плюс в функции, то что можно сделать поле вычисляемое материализованное в итоге если вдруг такое потребуется на проде, с материализованным полем будет макс перфоманс, хотя и реплейсы так же можно материализовать, да и доп таблицу + inner join + group by можно вьюху материализовать... но это уже за рамках этой задачи ))) Материализованная колонка или вьюха = макс перфоманс, еще если и в индексах это поле будет
Сириуху ТЗ не указ он РАЗРАБОТЧИК!!!!
...
Рейтинг: 1 / 0
Нравится: PaNik
09.09.2022, 14:09
    #142871
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 14:03
[игнорируется]
Дед-Папыхтет  09.09.2022, 13:48
[игнорируется]
Redd  09.09.2022, 13:44
[игнорируется]
eNose  09.09.2022, 13:42
[игнорируется]
Redd  09.09.2022, 13:38
[игнорируется]
...
но у них то в запросе!
а у тебя в функции. так сделай же по человечески!
Мне мой вариант нравится. Все понятно, дорабатывать легко, читабельно. Работает на сотые секунды медленнее реплесов.
на самом деле, по ТЗ было сделать запросом... без функций доп таблиц и т.п. - просто один запрос...

Но единственный плюс в функции, то что можно сделать поле вычисляемое материализованное в итоге если вдруг такое потребуется на проде, с материализованным полем будет макс перфоманс, хотя и реплейсы так же можно материализовать, да и доп таблицу + inner join + group by можно вьюху материализовать... но это уже за рамках этой задачи ))) Материализованная колонка или вьюха = макс перфоманс, еще если и в индексах это поле будет
Да намально и так сойдёт)
Ээ, одним, сложна сразу. Ты лучше сразу так не говори собеседование. Ну чтоб на взлете не гасить)
Поэтому ты и пиздоклюй-нищееб потому что тебе одним запросом сложно сразу. а еще на базовиков бочку катишь
...
Рейтинг: 0 / 0
09.09.2022, 14:12
    #142873
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 14:09
[игнорируется]
Redd  09.09.2022, 14:03
[игнорируется]
Дед-Папыхтет  09.09.2022, 13:48
[игнорируется]
Redd  09.09.2022, 13:44
[игнорируется]
eNose  09.09.2022, 13:42
[игнорируется]
...
Мне мой вариант нравится. Все понятно, дорабатывать легко, читабельно. Работает на сотые секунды медленнее реплесов.
на самом деле, по ТЗ было сделать запросом... без функций доп таблиц и т.п. - просто один запрос...

Но единственный плюс в функции, то что можно сделать поле вычисляемое материализованное в итоге если вдруг такое потребуется на проде, с материализованным полем будет макс перфоманс, хотя и реплейсы так же можно материализовать, да и доп таблицу + inner join + group by можно вьюху материализовать... но это уже за рамках этой задачи ))) Материализованная колонка или вьюха = макс перфоманс, еще если и в индексах это поле будет
Да намально и так сойдёт)
Ээ, одним, сложна сразу. Ты лучше сразу так не говори собеседование. Ну чтоб на взлете не гасить)
Поэтому ты и пиздоклюй-нищееб потому что тебе одним запросом сложно сразу. а еще на базовиков бочку катишь
Похел нахуй. Ты вообще не смог ничего.
...
Рейтинг: 0 / 0
09.09.2022, 14:27
    #142888
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 11:53
[игнорируется]
Просто Трёп  09.09.2022, 11:23
[игнорируется]
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
Недавно озаботился такой псевдоколонкой. Есть, но с ней не все так просто.
не ну я не про row_number() если что
Так и есть. И я про него.
...
Рейтинг: 0 / 0
09.09.2022, 14:29
    #142889
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 12:09
[игнорируется]
"Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр."

кстати нет ограничений на создание процедур и функций
Не, слово "запросом" подразумевает "одним запросом". Если это слово убрать, получится "любым способом".
...
Рейтинг: 0 / 0
09.09.2022, 14:43
    #142896
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 14:29
[игнорируется]
eNose  09.09.2022, 12:09
[игнорируется]
"Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр."

кстати нет ограничений на создание процедур и функций
Не, слово "запросом" подразумевает "одним запросом". Если это слово убрать, получится "любым способом".
тогда решение барсука (спижженое в гугле) фтопку
...
Рейтинг: 0 / 0
09.09.2022, 14:44
    #142897
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 14:27
[игнорируется]
Doublekey  09.09.2022, 11:53
[игнорируется]
Просто Трёп  09.09.2022, 11:23
[игнорируется]
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
Недавно озаботился такой псевдоколонкой. Есть, но с ней не все так просто.
не ну я не про row_number() если что
Так и есть. И я про него.
142839
...
Рейтинг: 0 / 0
09.09.2022, 15:35
    #142964
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 14:12
[игнорируется]
Doublekey  09.09.2022, 14:09
[игнорируется]
Redd  09.09.2022, 14:03
[игнорируется]
Дед-Папыхтет  09.09.2022, 13:48
[игнорируется]
Redd  09.09.2022, 13:44
[игнорируется]
...
на самом деле, по ТЗ было сделать запросом... без функций доп таблиц и т.п. - просто один запрос...

Но единственный плюс в функции, то что можно сделать поле вычисляемое материализованное в итоге если вдруг такое потребуется на проде, с материализованным полем будет макс перфоманс, хотя и реплейсы так же можно материализовать, да и доп таблицу + inner join + group by можно вьюху материализовать... но это уже за рамках этой задачи ))) Материализованная колонка или вьюха = макс перфоманс, еще если и в индексах это поле будет
Да намально и так сойдёт)
Ээ, одним, сложна сразу. Ты лучше сразу так не говори собеседование. Ну чтоб на взлете не гасить)
Поэтому ты и пиздоклюй-нищееб потому что тебе одним запросом сложно сразу. а еще на базовиков бочку катишь
Похел нахуй. Ты вообще не смог ничего.
Тебе блять ускоглазый еще показать?
Цитата 
[игнорируется]
WITH seq
AS
(
SELECT 1 AS [rn]
UNION ALL
SELECT rn+1
FROM seq
WHERE rn <101
),
tbl as
(
select '1123456543467' sstr
UNION ALL
select '121233445678'
UNION ALL
select '66767654354356789'
)

select sstr,sum(onenum) summ from
(
select sstr,rn, cast(substring(sstr,rn,1) as int) onenum from tbl, seq where seq.rn <= len(tbl.sstr)
) tt
group by sstr
и
Цитата 
[игнорируется]
WITH tbl as (
select '1123456543467' sstr FROM dual
UNION ALL
select '121233445678' FROM dual
UNION ALL
select '66767654354356789' FROM dual
)

select sstr, sum(to_number(substr(sstr,rn,1))) onn
from tbl,
(SELECT rownum as rn FROM dual CONNECT BY level <= 256) seq
where seq.rn <= length(tbl.sstr)
group by sstr
...
Изменено: 09.09.2022, 15:42 - Doublekey
Рейтинг: 0 / 0
09.09.2022, 15:35
    #142966
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 14:27
[игнорируется]
Doublekey  09.09.2022, 11:53
[игнорируется]
Просто Трёп  09.09.2022, 11:23
[игнорируется]
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
Недавно озаботился такой псевдоколонкой. Есть, но с ней не все так просто.
не ну я не про row_number() если что
Так и есть. И я про него.
неее я не про него в оракле есть обычный rownum без оверов
...
Рейтинг: 0 / 0
09.09.2022, 15:37
    #142974
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 14:43
[игнорируется]
Просто Трёп  09.09.2022, 14:29
[игнорируется]
eNose  09.09.2022, 12:09
[игнорируется]
"Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр."

кстати нет ограничений на создание процедур и функций
Не, слово "запросом" подразумевает "одним запросом". Если это слово убрать, получится "любым способом".
тогда решение барсука (спижженое в гугле) фтопку
Не особо вникал что там барсик писал. но по сути
With Это кусок запроса - шаблон. он может считаться часть шаблона.

у меня оракловый вариант даже без виза работает чиста на голом энтузиазме виз там исходная табличка.
...
Рейтинг: 0 / 0
09.09.2022, 15:45
    #142994
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 13:41
[игнорируется]
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
select *,%%physloc%%
from dbo.test_table

некая альтернатива
Мне понадобилось сохранить порядок чисел в строке, и я забубенил именно row_number()
Код: SQL
1.
2.
3.
4.
5.
6.
declare @s nvarchar(2000)

select @s = '2,5,1,6'
DECLARE @xml XML = '<t>' + REPLACE(@s, ',', '</t><t>') + '</t>'

SELECT [rn] = row_number() over(order by (select null)), [id] = convert(int, P.N.value('.', 'varchar(100)')) FROM @xml.nodes('/t') P(N)
Но мне этот over не нравится. А без него роу_намбер не работает.
...
Рейтинг: 0 / 0
09.09.2022, 15:56
    #143010
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 15:35
[игнорируется]
неее я не про него в оракле есть обычный rownum без оверов
Я тормаз.
...
Рейтинг: 0 / 0
09.09.2022, 15:58
    #143014
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 15:45
[игнорируется]
Но мне этот over не нравится.
Но я запихал его в табличную функцию и забыл про него. Так что, в принципе, с этим можно работать.
...
Рейтинг: 0 / 0
09.09.2022, 15:59
    #143017
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 15:35
[игнорируется]
Redd  09.09.2022, 14:12
[игнорируется]
Doublekey  09.09.2022, 14:09
[игнорируется]
Redd  09.09.2022, 14:03
[игнорируется]
Дед-Папыхтет  09.09.2022, 13:48
[игнорируется]
...
Да намально и так сойдёт)
Ээ, одним, сложна сразу. Ты лучше сразу так не говори собеседование. Ну чтоб на взлете не гасить)
Поэтому ты и пиздоклюй-нищееб потому что тебе одним запросом сложно сразу. а еще на базовиков бочку катишь
Похел нахуй. Ты вообще не смог ничего.
Тебе блять ускоглазый еще показать?
Цитата 
[игнорируется]
WITH seq
AS
(
SELECT 1 AS [rn]
UNION ALL
SELECT rn+1
FROM seq
WHERE rn <101
),
tbl as
(
select '1123456543467' sstr
UNION ALL
select '121233445678'
UNION ALL
select '66767654354356789'
)

select sstr,sum(onenum) summ from
(
select sstr,rn, cast(substring(sstr,rn,1) as int) onenum from tbl, seq where seq.rn <= len(tbl.sstr)
) tt
group by sstr
и
Цитата 
[игнорируется]
WITH tbl as (
select '1123456543467' sstr FROM dual
UNION ALL
select '121233445678' FROM dual
UNION ALL
select '66767654354356789' FROM dual
)

select sstr, sum(to_number(substr(sstr,rn,1))) onn
from tbl,
(SELECT rownum as rn FROM dual CONNECT BY level <= 256) seq
where seq.rn <= length(tbl.sstr)
group by sstr
Касса закрыта, кино уже прошло. Билеты уже больше не продаются (иди внах со своим гавнокодом[:lol])
...
Рейтинг: 0 / 0
09.09.2022, 16:00
    #143020
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd [игнорируется] 

Давай следующую задачу на собеседование базоебам
...
Рейтинг: 0 / 0
09.09.2022, 16:03
    #143027
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 16:00
[игнорируется]
Redd [игнорируется] 

Давай следующую задачу на собеседование базоебам
Так ты дирехтор же! с понедельника лучше. Ща уже пятница, конец недели, не до этого)
...
Изменено: 09.09.2022, 16:03 - Redd
Рейтинг: 0 / 0
09.09.2022, 16:03
    #143031
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Правда мне ту по Прелести подвалило..
...
Рейтинг: 0 / 0
09.09.2022, 16:05
    #143035
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 15:45
[игнорируется]
Дед-Папыхтет  09.09.2022, 13:41
[игнорируется]
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
select *,%%physloc%%
from dbo.test_table

некая альтернатива
Мне понадобилось сохранить порядок чисел в строке, и я забубенил именно row_number()
Код: SQL
1.
2.
3.
4.
5.
6.
declare @s nvarchar(2000)

select @s = '2,5,1,6'
DECLARE @xml XML = '<t>' + REPLACE(@s, ',', '</t><t>') + '</t>'

SELECT [rn] = row_number() over(order by (select null)), [id] = convert(int, P.N.value('.', 'varchar(100)')) FROM @xml.nodes('/t') P(N)
Но мне этот over не нравится. А без него роу_намбер не работает.
Я и говорю в оракле есть rownum но он правда ордер баем сбивается.
...
Рейтинг: 0 / 0
09.09.2022, 16:07
    #143042
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 15:59
[игнорируется]
Doublekey  09.09.2022, 15:35
[игнорируется]
Redd  09.09.2022, 14:12
[игнорируется]
Doublekey  09.09.2022, 14:09
[игнорируется]
Redd  09.09.2022, 14:03
[игнорируется]
...
Поэтому ты и пиздоклюй-нищееб потому что тебе одним запросом сложно сразу. а еще на базовиков бочку катишь
Похел нахуй. Ты вообще не смог ничего.
Тебе блять ускоглазый еще показать?
Цитата 
[игнорируется]
WITH seq
AS
(
SELECT 1 AS [rn]
UNION ALL
SELECT rn+1
FROM seq
WHERE rn <101
),
tbl as
(
select '1123456543467' sstr
UNION ALL
select '121233445678'
UNION ALL
select '66767654354356789'
)

select sstr,sum(onenum) summ from
(
select sstr,rn, cast(substring(sstr,rn,1) as int) onenum from tbl, seq where seq.rn <= len(tbl.sstr)
) tt
group by sstr
и
Цитата 
[игнорируется]
WITH tbl as (
select '1123456543467' sstr FROM dual
UNION ALL
select '121233445678' FROM dual
UNION ALL
select '66767654354356789' FROM dual
)

select sstr, sum(to_number(substr(sstr,rn,1))) onn
from tbl,
(SELECT rownum as rn FROM dual CONNECT BY level <= 256) seq
where seq.rn <= length(tbl.sstr)
group by sstr
Касса закрыта, кино уже прошло. Билеты уже больше не продаются (иди внах со своим гавнокодом[:lol])
Да и хер с тобой, я тебе первый вариант еще вчера писал, и также писал почему я не подорвался сходу вашу задачку решать.
Но то что кино прошло не меняет того что ты разраб-долбоклюй и нехуй тут щемить на базовиков.
...
Рейтинг: 0 / 0
09.09.2022, 16:08
    #143044
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 16:03
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:00
[игнорируется]
Redd [игнорируется] 

Давай следующую задачу на собеседование базоебам
Так ты дирехтор же! с понедельника лучше. Ща уже пятница, конец недели, не до этого)
Попых не директор у него так только должность называется.
...
Рейтинг: 0 / 0
09.09.2022, 16:09
    #143048
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 16:03
[игнорируется]
Правда мне ту по Прелести подвалило..
Ну тогда работай иди. а то мало ли что с зп случипццо
...
Рейтинг: 1 / 0
Нравится: PaNik
09.09.2022, 16:12
    #143055
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
...
Изменено: 09.09.2022, 16:13 - Дед-Папыхтет
Рейтинг: 0 / 0
09.09.2022, 16:16
    #143061
9288
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Ага
Группировка по инварианту -- значение-<номер строки>
...
Рейтинг: 0 / 0
09.09.2022, 16:17
    #143065
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
10 10
это не диапазон
...
Рейтинг: 0 / 0
09.09.2022, 16:17
    #143067
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 16:17
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
10 10
это не диапазон
А что это? )))) и как единичное значение выводить в этой задаче? ))))
...
Рейтинг: 0 / 0
09.09.2022, 16:18
    #143069
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 16:17
[игнорируется]
eNose  09.09.2022, 16:17
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
10 10
это не диапазон
А что это? )))) и как единичное значение выводить в этой задаче? ))))
никак

убрать!
...
Изменено: 09.09.2022, 16:18 - eNose
Рейтинг: 0 / 0
09.09.2022, 16:23
    #143076
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
группировка нужна последовательных чисел
...
Рейтинг: 0 / 0
09.09.2022, 16:25
    #143078
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
Lag и Lead по выбору если до лекции успею вздрочнуть и написать - напишу.
С помощью этих замечательных функций можно определить наличие разрывов в последовательности потому что они могут показать пердыдущее и последующее значение в столбце.
...
Рейтинг: 0 / 0
09.09.2022, 16:25
    #143080
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 16:18
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:17
[игнорируется]
eNose  09.09.2022, 16:17
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
10 10
это не диапазон
А что это? )))) и как единичное значение выводить в этой задаче? ))))
никак

убрать!
нихуя это диапазон из одного элемента.
...
Рейтинг: 0 / 0
09.09.2022, 16:29
    #143085
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 16:25
[игнорируется]
eNose  09.09.2022, 16:18
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:17
[игнорируется]
eNose  09.09.2022, 16:17
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
...
это не диапазон
А что это? )))) и как единичное значение выводить в этой задаче? ))))
никак

убрать!
нихуя это диапазон из одного элемента.
вырожденный интервал это называется

для выродков!

мы же не выродки, да?
...
Рейтинг: 0 / 0
09.09.2022, 16:40
    #143111
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 16:29
[игнорируется]
Doublekey  09.09.2022, 16:25
[игнорируется]
eNose  09.09.2022, 16:18
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:17
[игнорируется]
eNose  09.09.2022, 16:17
[игнорируется]
...
А что это? )))) и как единичное значение выводить в этой задаче? ))))
никак

убрать!
нихуя это диапазон из одного элемента.
вырожденный интервал это называется

для выродков!

мы же не выродки, да?
нет выродки.
...
Изменено: 09.09.2022, 16:40 - Doublekey
Рейтинг: 0 / 0
09.09.2022, 16:42
    #143116
9288
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
tst> with t as (select  1 x from dual union all
  2             select  2 from dual union all
  3             select  3 from dual union all
  4             select  7 from dual union all
  5             select  8 from dual union all
  6             select 10 from dual union all
  7             select 15 from dual union all
  8             select 16 from dual union all
  9             select 17 from dual union all
 10             select 18 from dual)
 11  select min(x), max(x)
 12  from (select x, rownum rn from (select x from t order by x))
 13  group by (x-rn)
 14  /

  MIN(X)   MAX(X)
-------- --------
       1        3
      10       10
       7        8
      15       18
Можно и просто аналитику вместо rownum и подзапроса с сортировкой заюзать

Тема же старая, заезженная, еще со старого сруля
...
Изменено: 09.09.2022, 16:42 - 9288
Рейтинг: 0 / 0
09.09.2022, 16:43
    #143120
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
9288  09.09.2022, 16:42
[игнорируется]
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
ftctst> with t as (select  1 x from dual union all
  2             select  2 from dual union all
  3             select  3 from dual union all
  4             select  7 from dual union all
  5             select  8 from dual union all
  6             select 10 from dual union all
  7             select 15 from dual union all
  8             select 16 from dual union all
  9             select 17 from dual union all
 10             select 18 from dual)
 11  select min(x), max(x)
 12  from (select x, rownum rn from (select x from t order by x))
 13  group by (x-rn)
 14  /

  MIN(X)   MAX(X)
-------- --------
       1        3
      10       10
       7        8
      15       18
Можно и просто аналитику вместо rownum и подзапроса с сортировкой заюзать

Тема же старая, заезженная, еще со старого сруля
Ну да, просто ты знал решение, я его тоже знал из книжки Ицика-Бен-Гана... Но вот самостоятельно такое придумать не каждый осилит )
...
Рейтинг: 0 / 0
09.09.2022, 16:43
    #143121
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
Вот [:smile]
Код: 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.
CREATE TABLE `ttt` (
  `num` INT(11) NULL DEFAULT NULL
)
COMMENT='test'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

INSERT INTO `ttt` (`num`) VALUES (1);
INSERT INTO `ttt` (`num`) VALUES (2);
INSERT INTO `ttt` (`num`) VALUES (3);
INSERT INTO `ttt` (`num`) VALUES (7);
INSERT INTO `ttt` (`num`) VALUES (8);
INSERT INTO `ttt` (`num`) VALUES (10);
INSERT INTO `ttt` (`num`) VALUES (15);
INSERT INTO `ttt` (`num`) VALUES (16);

SELECT
  num, pos
FROM
  (SELECT
  num,
  @pos := (SELECT num FROM ttt WHERE num > t1.num LIMIT 1),
  IF (num + 1 <> @pos, @pos, 0) AS pos
  FROM
  ttt t1) AS t
WHERE
pos > 0
...
Изменено: 09.09.2022, 16:44 - Redd
Рейтинг: 0 / 0
09.09.2022, 16:47
    #143129
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Немного не то, но точка разрыва найдена)
...
Рейтинг: 0 / 0
09.09.2022, 16:55
    #143136
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Вот вам альфа версия. Наш убер пиздоклюй опять предложит крутить циклы в функциях с запоминанием?
Цитата 
[игнорируется]
WITH tbl as (
select 1 a from dual union all
select 2 a from dual union all
select 3 a from dual union all
select 7 a from dual union all
select 8 a from dual union all
select 10 a from dual union all
select 15 a from dual union all
select 16 a from dual union all
select 17 a from dual union all
select 18 a from dual
)

select t1.a start_, t2.a finish_ from
(select a, rownum r from (
select a, lag(a,1,-1) over (order by a) ld from tbl) a
where a-ld > 1) t1,

(select a,rownum r from (
select a, lead(a,1,999) over (order by a) ld from tbl) a
where ld-a >1) t2

where t1.r = t2.r
...
Рейтинг: 0 / 0
09.09.2022, 16:57
    #143139
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 16:47
[игнорируется]
Немного не то, но точка разрыва найдена)
ну опять ты сделал все по своем а не как надо :-)
...
Рейтинг: 0 / 0
09.09.2022, 17:39
    #143180
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет [игнорируется] 
Redd  09.09.2022, 16:47
[игнорируется]
Немного не то, но точка разрыва найдена)
Поправил [:nya]
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SET @cout = 0;
SET @cout2 = 0;
SET @prev = 0;
SELECT
  @cout2 := @cout2 + 1 AS p,
  t2.f AS f,
  IF (@cout = @cout2, t2.l + 1, t2.l) AS l
FROM
  (SELECT
    IF (@cout = 0, 1, @prev) AS f,
    IF (@cout = 0, num, t.pos) AS l,
    @cout := @cout + 1,
    @prev := t.pos
  FROM
    (SELECT
      num,
      @pos := (SELECT num FROM ttt WHERE num > t1.num LIMIT 1),
      IF (num + 1 <> @pos, @pos, 0) AS pos
    FROM
      ttt t1) AS t
  WHERE
    t.pos > 0) AS t2
...
Рейтинг: 0 / 0
09.09.2022, 17:55
    #143204
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 16:55
[игнорируется]
Цитата 
[игнорируется]
Код: 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.
45.
46.
47.
48.
WITH tbl AS
(
    SELECT 1 a
    UNION ALL
    SELECT 2
    UNION ALL
    SELECT 3
    UNION ALL
    SELECT 7
    UNION ALL
    SELECT 8
    UNION ALL
    SELECT 10
    UNION ALL
    SELECT 15
    UNION ALL
    SELECT 16
    UNION ALL
    SELECT 17
    UNION ALL
    SELECT 18
)
SELECT t1.a start_,
       t2.a finish_
FROM
(
    SELECT a,
           Row_number() OVER (ORDER BY a) r
    FROM
    (
        SELECT a,
               Lag(a, 1, -1) OVER (ORDER BY a) ld
        FROM   tbl
    ) a
    WHERE  a - ld > 1
) t1,
(
    SELECT a,
           Row_number() OVER (ORDER BY a) r
    FROM
    (
        SELECT a,
               Lead(a, 1, 999) OVER (ORDER BY a) ld
        FROM   tbl
    ) a
    WHERE  ld - a > 1
) t2
WHERE  t1.r = t2.r
Блин ))) Ну вот берешь код Барсука - приятно читать - отступы все выставлены... У многих, как у тебя малочитабельно )))) хоть бы автоформаттером хуячил. Не задрачивали тебя в кровавом энтерпрайз ревью кода ))))
...
Рейтинг: 1 / 0
09.09.2022, 19:23
    #143270
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
Пока дальше не буду читать, а то первую задачу проебал. Но у меня пиво...
...
Рейтинг: 0 / 0
09.09.2022, 19:45
    #143296
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 16:43
[игнорируется]
9288  09.09.2022, 16:42
[игнорируется]
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
ftctst> with t as (select  1 x from dual union all
  2             select  2 from dual union all
  3             select  3 from dual union all
  4             select  7 from dual union all
  5             select  8 from dual union all
  6             select 10 from dual union all
  7             select 15 from dual union all
  8             select 16 from dual union all
  9             select 17 from dual union all
 10             select 18 from dual)
 11  select min(x), max(x)
 12  from (select x, rownum rn from (select x from t order by x))
 13  group by (x-rn)
 14  /

  MIN(X)   MAX(X)
-------- --------
       1        3
      10       10
       7        8
      15       18
Можно и просто аналитику вместо rownum и подзапроса с сортировкой заюзать

Тема же старая, заезженная, еще со старого сруля
Ну да, просто ты знал решение, я его тоже знал из книжки Ицика-Бен-Гана... Но вот самостоятельно такое придумать не каждый осилит )
И нахуя такие тесты?

Проверить какие книжки ты читал?
...
Рейтинг: 0 / 0
09.09.2022, 19:48
    #143299
Артефакт
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
чтобы загнобить кандидата и уломать его на меньшую зряплату вкалывать
реальные задачи больше требуют знание предметной области и структуры конкретной бд
что больше достигается конкретной практикой на конкретной работе
...
Рейтинг: 1 / 0
Нравится: Дед-Папыхтет
09.09.2022, 19:55
    #143304
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Я и говорю: ебанутость.

Найдите мне средствами wmi подключенный к компу проектор.
Блеать, ты либо знаешь что это монитор с нулевым размером экрана - либо не знаешь. Всё.

И нахуй эти вопросы нужны?
...
Рейтинг: 0 / 0
09.09.2022, 20:00
    #143308
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 19:55
[игнорируется]
Я и говорю: ебанутость.

Найдите мне средствами wmi подключенный к компу проектор.
Блеать, ты либо знаешь что это монитор с нулевым размером экрана - либо не знаешь. Всё.

И нахуй эти вопросы нужны?
проектор это монитор,вся инфа лежит в edid, надо читать edid
под linx это делается элементарно : ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -r -p | strings

с виндой сложнее но там все девайсы лежат стопочкой в реестре
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
09.09.2022, 20:01
    #143311
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:00
[игнорируется]
eNose  09.09.2022, 19:55
[игнорируется]
Я и говорю: ебанутость.

Найдите мне средствами wmi подключенный к компу проектор.
Блеать, ты либо знаешь что это монитор с нулевым размером экрана - либо не знаешь. Всё.

И нахуй эти вопросы нужны?
проектор это монитор,вся инфа лежит в edid, надо читать edid
под linx это делается элементарно : ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -r -p | strings

с виндой сложнее но там все девайсы лежат стопочкой в реестре
В едиде не сказано что это проектор.

Сможешь по едиду определить что перед тобой ноутбук? А я смогу.
Только это нихуя не показатель.
...
Рейтинг: 0 / 0
09.09.2022, 20:02
    #143312
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 20:01
[игнорируется]
Буся  09.09.2022, 20:00
[игнорируется]
eNose  09.09.2022, 19:55
[игнорируется]
Я и говорю: ебанутость.

Найдите мне средствами wmi подключенный к компу проектор.
Блеать, ты либо знаешь что это монитор с нулевым размером экрана - либо не знаешь. Всё.

И нахуй эти вопросы нужны?
проектор это монитор,вся инфа лежит в edid, надо читать edid
под linx это делается элементарно : ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -r -p | strings

с виндой сложнее но там все девайсы лежат стопочкой в реестре
В едиде не сказано что это проектор.

Сможешь по едиду определить что перед тобой ноутбук? А я смогу.
Только это нихуя не показатель.
в едиде сказано что это монитор,и его характеристики, в том числе производитель и тд
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
09.09.2022, 20:02
    #143314
letrovada
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Зачем в природе базоёбы, когда они не могут сделать быстрый пошочатик или придумать YDB.
...
Рейтинг: 0 / 0
09.09.2022, 20:03
    #143315
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:02
[игнорируется]
eNose  09.09.2022, 20:01
[игнорируется]
Буся  09.09.2022, 20:00
[игнорируется]
eNose  09.09.2022, 19:55
[игнорируется]
Я и говорю: ебанутость.

Найдите мне средствами wmi подключенный к компу проектор.
Блеать, ты либо знаешь что это монитор с нулевым размером экрана - либо не знаешь. Всё.

И нахуй эти вопросы нужны?
проектор это монитор,вся инфа лежит в edid, надо читать edid
под linx это делается элементарно : ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -r -p | strings

с виндой сложнее но там все девайсы лежат стопочкой в реестре
В едиде не сказано что это проектор.

Сможешь по едиду определить что перед тобой ноутбук? А я смогу.
Только это нихуя не показатель.
в едиде сказано что это монитор,и его характеристики, в том числе производитель и тд
И чо?

Вьюсоник монитор от вьюсоника проектора как отделить?
...
Рейтинг: 0 / 0
09.09.2022, 20:04
    #143316
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 20:03
[игнорируется]
Буся  09.09.2022, 20:02
[игнорируется]
eNose  09.09.2022, 20:01
[игнорируется]
Буся  09.09.2022, 20:00
[игнорируется]
eNose  09.09.2022, 19:55
[игнорируется]
...
проектор это монитор,вся инфа лежит в edid, надо читать edid
под linx это делается элементарно : ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -r -p | strings

с виндой сложнее но там все девайсы лежат стопочкой в реестре
В едиде не сказано что это проектор.

Сможешь по едиду определить что перед тобой ноутбук? А я смогу.
Только это нихуя не показатель.
в едиде сказано что это монитор,и его характеристики, в том числе производитель и тд
И чо?

Вьюсоник монитор от вьюсоника проектора как отделить?
проектор это монитор,что ты хочешь от монитора то?
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
09.09.2022, 20:04
    #143317
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
В едиде не сказано что это монитор.

Там есть производитель, модель, частоты, разрешения, серийный номер, размеры и прочая хуйня.
...
Рейтинг: 0 / 0
09.09.2022, 20:05
    #143318
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:04
[игнорируется]
eNose  09.09.2022, 20:03
[игнорируется]
Буся  09.09.2022, 20:02
[игнорируется]
eNose  09.09.2022, 20:01
[игнорируется]
Буся  09.09.2022, 20:00
[игнорируется]
...
В едиде не сказано что это проектор.

Сможешь по едиду определить что перед тобой ноутбук? А я смогу.
Только это нихуя не показатель.
в едиде сказано что это монитор,и его характеристики, в том числе производитель и тд
И чо?

Вьюсоник монитор от вьюсоника проектора как отделить?
проектор это монитор,что ты хочешь от монитора то?
Только у проектора в едиде размеры нулевые.

А у ноутбука нет серийного номера.

И вот представь что подобное говно тебя спросят на собеседовании.
...
Рейтинг: 0 / 0
09.09.2022, 20:06
    #143319
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 20:04
[игнорируется]
В едиде не сказано что это монитор.

Там есть производитель, модель, частоты, разрешения, серийный номер, размеры и прочая хуйня.
edid только для дисплеев и применяется,зачем там что то указывать если это только для них и сделано?
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
09.09.2022, 20:07
    #143320
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 20:05
[игнорируется]
Буся  09.09.2022, 20:04
[игнорируется]
eNose  09.09.2022, 20:03
[игнорируется]
Буся  09.09.2022, 20:02
[игнорируется]
eNose  09.09.2022, 20:01
[игнорируется]
...
в едиде сказано что это монитор,и его характеристики, в том числе производитель и тд
И чо?

Вьюсоник монитор от вьюсоника проектора как отделить?
проектор это монитор,что ты хочешь от монитора то?
Только у проектора в едиде размеры нулевые.

А у ноутбука нет серийного номера.

И вот представь что подобное говно тебя спросят на собеседовании.
криво читаешь значит,если бы там нулевые размеры указаны были он бы не работал нихуя
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
09.09.2022, 20:08
    #143321
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
так же есть такая штука как enchanced edid
...
хвост есть продолжение кошки
Изменено: 09.09.2022, 20:09 - Буся
Рейтинг: 0 / 0
09.09.2022, 20:10
    #143323
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:07
[игнорируется]
eNose  09.09.2022, 20:05
[игнорируется]
Буся  09.09.2022, 20:04
[игнорируется]
eNose  09.09.2022, 20:03
[игнорируется]
Буся  09.09.2022, 20:02
[игнорируется]
...
И чо?

Вьюсоник монитор от вьюсоника проектора как отделить?
проектор это монитор,что ты хочешь от монитора то?
Только у проектора в едиде размеры нулевые.

А у ноутбука нет серийного номера.

И вот представь что подобное говно тебя спросят на собеседовании.
криво читаешь значит,если бы там нулевые размеры указаны были он бы не работал нихуя
Ты дебил штоле?

Размеры изображения. В миллиметрах.

Какие нахуй размеры изображения у проектора?
...
Рейтинг: 0 / 0
09.09.2022, 20:11
    #143324
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:08
[игнорируется]
так же есть такая штука как extended edid
Там нет типа устройства
...
Рейтинг: 0 / 0
09.09.2022, 20:12
    #143326
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 20:10
[игнорируется]
Буся  09.09.2022, 20:07
[игнорируется]
eNose  09.09.2022, 20:05
[игнорируется]
Буся  09.09.2022, 20:04
[игнорируется]
eNose  09.09.2022, 20:03
[игнорируется]
...
проектор это монитор,что ты хочешь от монитора то?
Только у проектора в едиде размеры нулевые.

А у ноутбука нет серийного номера.

И вот представь что подобное говно тебя спросят на собеседовании.
криво читаешь значит,если бы там нулевые размеры указаны были он бы не работал нихуя
Ты дебил штоле?

Размеры изображения. В миллиметрах.

Какие нахуй размеры изображения у проектора?
количество пикселов по вертикали и горизонтали дебил,учи устройство проектора,там блять тоже матрица прикинь? а ноль у тебя потому что он тебе не сообщает свои режимы,блять тупой уебок
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
09.09.2022, 20:13
    #143328
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:12
[игнорируется]
eNose  09.09.2022, 20:10
[игнорируется]
Буся  09.09.2022, 20:07
[игнорируется]
eNose  09.09.2022, 20:05
[игнорируется]
Буся  09.09.2022, 20:04
[игнорируется]
...
Только у проектора в едиде размеры нулевые.

А у ноутбука нет серийного номера.

И вот представь что подобное говно тебя спросят на собеседовании.
криво читаешь значит,если бы там нулевые размеры указаны были он бы не работал нихуя
Ты дебил штоле?

Размеры изображения. В миллиметрах.

Какие нахуй размеры изображения у проектора?
количество пикселов по вертикали и горизонтали дебил,учи устройство проектора,там блять тоже матрица прикинь? а ноль у тебя потому что он тебе не сообщает свои режимы,блять тупой уебок
Количество пикселей это разрешение, идиот.

Поставь у себя vga и наслаждайся.
...
Рейтинг: 0 / 0
09.09.2022, 20:14
    #143329
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
В едиде есть физические размеры изображения.
Тупой уйобак.
...
Рейтинг: 0 / 0
09.09.2022, 20:15
    #143330
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 20:13
[игнорируется]
Буся  09.09.2022, 20:12
[игнорируется]
eNose  09.09.2022, 20:10
[игнорируется]
Буся  09.09.2022, 20:07
[игнорируется]
eNose  09.09.2022, 20:05
[игнорируется]
...
криво читаешь значит,если бы там нулевые размеры указаны были он бы не работал нихуя
Ты дебил штоле?

Размеры изображения. В миллиметрах.

Какие нахуй размеры изображения у проектора?
количество пикселов по вертикали и горизонтали дебил,учи устройство проектора,там блять тоже матрица прикинь? а ноль у тебя потому что он тебе не сообщает свои режимы,блять тупой уебок
Количество пикселей это разрешение, идиот.

Поставь у себя vga и наслаждайся.
разрешение это количество на единицу длины мудель
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
09.09.2022, 20:15
    #143332
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:15
[игнорируется]
eNose  09.09.2022, 20:13
[игнорируется]
Буся  09.09.2022, 20:12
[игнорируется]
eNose  09.09.2022, 20:10
[игнорируется]
Буся  09.09.2022, 20:07
[игнорируется]
...
Ты дебил штоле?

Размеры изображения. В миллиметрах.

Какие нахуй размеры изображения у проектора?
количество пикселов по вертикали и горизонтали дебил,учи устройство проектора,там блять тоже матрица прикинь? а ноль у тебя потому что он тебе не сообщает свои режимы,блять тупой уебок
Количество пикселей это разрешение, идиот.

Поставь у себя vga и наслаждайся.
разрешение это количество на единицу длины мудель
Это плотность дятел
...
Рейтинг: 0 / 0
09.09.2022, 20:16
    #143333
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 20:14
[игнорируется]
В едиде есть физические размеры изображения.
Тупой уйобак.
твой проектор это матрица с прожектором и линза,сответвенно матрица имеет размеры,и это все прописано в едид
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
09.09.2022, 20:16
    #143334
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 20:15
[игнорируется]
Буся  09.09.2022, 20:15
[игнорируется]
eNose  09.09.2022, 20:13
[игнорируется]
Буся  09.09.2022, 20:12
[игнорируется]
eNose  09.09.2022, 20:10
[игнорируется]
...
количество пикселов по вертикали и горизонтали дебил,учи устройство проектора,там блять тоже матрица прикинь? а ноль у тебя потому что он тебе не сообщает свои режимы,блять тупой уебок
Количество пикселей это разрешение, идиот.

Поставь у себя vga и наслаждайся.
разрешение это количество на единицу длины мудель
Это плотность дятел
Плотность — это интенсивность распределения одной величины по другой
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
09.09.2022, 20:17
    #143335
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:16
[игнорируется]
eNose  09.09.2022, 20:14
[игнорируется]
В едиде есть физические размеры изображения.
Тупой уйобак.
твой проектор это матрица с прожектором и линза,сответвенно матрица имеет размеры,и это все прописано в едид
Изображения.

Потому там и ноль у проекторов.

Можешь сам проверить.
...
Рейтинг: 0 / 0
09.09.2022, 20:17
    #143336
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:16
[игнорируется]
eNose  09.09.2022, 20:15
[игнорируется]
Буся  09.09.2022, 20:15
[игнорируется]
eNose  09.09.2022, 20:13
[игнорируется]
Буся  09.09.2022, 20:12
[игнорируется]
...
Количество пикселей это разрешение, идиот.

Поставь у себя vga и наслаждайся.
разрешение это количество на единицу длины мудель
Это плотность дятел
Плотность — это интенсивность распределения одной величины по другой
Именно.
Пикселей на дюйм, например.
...
Рейтинг: 0 / 0
09.09.2022, 20:19
    #143337
Буся
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 20:17
[игнорируется]
Буся  09.09.2022, 20:16
[игнорируется]
eNose  09.09.2022, 20:15
[игнорируется]
Буся  09.09.2022, 20:15
[игнорируется]
eNose  09.09.2022, 20:13
[игнорируется]
...
разрешение это количество на единицу длины мудель
Это плотность дятел
Плотность — это интенсивность распределения одной величины по другой
Именно.
Пикселей на дюйм, например.
о чем я тебе сразу и сказал ты стал выебываться пидор,скучно тебе что ли? иди хуй пососи что ли
...
хвост есть продолжение кошки
Рейтинг: 1 / 0
Нравится: Гарыныч
09.09.2022, 20:20
    #143339
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Буся  09.09.2022, 20:19
[игнорируется]
eNose  09.09.2022, 20:17
[игнорируется]
Буся  09.09.2022, 20:16
[игнорируется]
eNose  09.09.2022, 20:15
[игнорируется]
Буся  09.09.2022, 20:15
[игнорируется]
...
Это плотность дятел
Плотность — это интенсивность распределения одной величины по другой
Именно.
Пикселей на дюйм, например.
о чем я тебе сразу и сказал ты стал выебываться пидор,скучно тебе что ли? иди хуй пососи что ли
Я знаю что ты туповат.

Но вопрос то не в этом.

Нахуя такое спрашивать на собеседовании? Какой от этого практический толк?
...
Рейтинг: 0 / 0
09.09.2022, 20:21
    #143341
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Если меня спросят сабжевую хуйню, я просто пошлю нахуй такого работодателя.
...
Рейтинг: 0 / 0
09.09.2022, 20:22
    #143344
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Можно ж честно сказать кандидату по ораклу "если ты не знаешь наизусть кайта, зряплату дели на два"
...
Рейтинг: 0 / 0
09.09.2022, 20:31
    #143356
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 19:55
[игнорируется]
И нахуй эти вопросы нужны?
Мне просто по фану это порешать тут!) На собеседование не собираюсь
...
Рейтинг: 0 / 0
09.09.2022, 20:32
    #143359
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Я вообще на велосипеде ща поеду[:biggrin]
IMG_20220909_203122.jpg
...
Рейтинг: 1 / 0
Нравится: Мару
09.09.2022, 20:40
    #143368
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 20:32
[игнорируется]
Я вообще на велосипеде ща поеду[:biggrin]
IMG_20220909_203122.jpg
На встречку не выезжай!
...
Рейтинг: 3 / 0
09.09.2022, 21:20
    #143386
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 17:39
[игнорируется]
Дед-Папыхтет [игнорируется] 
Redd  09.09.2022, 16:47
[игнорируется]
Немного не то, но точка разрыва найдена)
Поправил [:nya]
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SET @cout = 0;
SET @cout2 = 0;
SET @prev = 0;
SELECT
  @cout2 := @cout2 + 1 AS p,
  t2.f AS f,
  IF (@cout = @cout2, t2.l + 1, t2.l) AS l
FROM
  (SELECT
    IF (@cout = 0, 1, @prev) AS f,
    IF (@cout = 0, num, t.pos) AS l,
    @cout := @cout + 1,
    @prev := t.pos
  FROM
    (SELECT
      num,
      @pos := (SELECT num FROM ttt WHERE num > t1.num LIMIT 1),
      IF (num + 1 <> @pos, @pos, 0) AS pos
    FROM
      ttt t1) AS t
  WHERE
    t.pos > 0) AS t2
посмотри количество строк у меня и у тебя? тоже скажешь интуитивно понятно и просто
...
Рейтинг: 0 / 0
09.09.2022, 21:21
    #143389
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 17:55
[игнорируется]
Doublekey  09.09.2022, 16:55
[игнорируется]
Цитата 
[игнорируется]
Код: 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.
45.
46.
47.
48.
WITH tbl AS
(
    SELECT 1 a
    UNION ALL
    SELECT 2
    UNION ALL
    SELECT 3
    UNION ALL
    SELECT 7
    UNION ALL
    SELECT 8
    UNION ALL
    SELECT 10
    UNION ALL
    SELECT 15
    UNION ALL
    SELECT 16
    UNION ALL
    SELECT 17
    UNION ALL
    SELECT 18
)
SELECT t1.a start_,
       t2.a finish_
FROM
(
    SELECT a,
           Row_number() OVER (ORDER BY a) r
    FROM
    (
        SELECT a,
               Lag(a, 1, -1) OVER (ORDER BY a) ld
        FROM   tbl
    ) a
    WHERE  a - ld > 1
) t1,
(
    SELECT a,
           Row_number() OVER (ORDER BY a) r
    FROM
    (
        SELECT a,
               Lead(a, 1, 999) OVER (ORDER BY a) ld
        FROM   tbl
    ) a
    WHERE  ld - a > 1
) t2
WHERE  t1.r = t2.r
Блин ))) Ну вот берешь код Барсука - приятно читать - отступы все выставлены... У многих, как у тебя малочитабельно )))) хоть бы автоформаттером хуячил. Не задрачивали тебя в кровавом энтерпрайз ревью кода ))))
Я блять вам эту хуйню писал за пять минут до лекции а отступы у меня не в крови.
...
Рейтинг: 0 / 0
09.09.2022, 21:24
    #143390
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  09.09.2022, 19:45
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:43
[игнорируется]
9288  09.09.2022, 16:42
[игнорируется]
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
ftctst> with t as (select  1 x from dual union all
  2             select  2 from dual union all
  3             select  3 from dual union all
  4             select  7 from dual union all
  5             select  8 from dual union all
  6             select 10 from dual union all
  7             select 15 from dual union all
  8             select 16 from dual union all
  9             select 17 from dual union all
 10             select 18 from dual)
 11  select min(x), max(x)
 12  from (select x, rownum rn from (select x from t order by x))
 13  group by (x-rn)
 14  /

  MIN(X)   MAX(X)
-------- --------
       1        3
      10       10
       7        8
      15       18
Можно и просто аналитику вместо rownum и подзапроса с сортировкой заюзать

Тема же старая, заезженная, еще со старого сруля
Ну да, просто ты знал решение, я его тоже знал из книжки Ицика-Бен-Гана... Но вот самостоятельно такое придумать не каждый осилит )
И нахуя такие тесты?

Проверить какие книжки ты читал?
да это веселые тесты с собеседований на знание фич. типа если одна сессия запустила селект на таблицу из миллиноа строка, а другая из под нее делитом эту базу выдергивает и коммитит. что будет в селекте?
...
Рейтинг: 0 / 0
09.09.2022, 21:25
    #143391
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Артефакт  09.09.2022, 19:48
[игнорируется]
чтобы загнобить кандидата и уломать его на меньшую зряплату вкалывать
реальные задачи больше требуют знание предметной области и структуры конкретной бд
что больше достигается конкретной практикой на конкретной работе
загнобить да но зарплату понизить нет, мне никто не предлагал меньше, мне просто говорил нет.
...
Рейтинг: 0 / 0
09.09.2022, 21:26
    #143392
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  09.09.2022, 21:20
[игнорируется]
Redd  09.09.2022, 17:39
[игнорируется]
Дед-Папыхтет [игнорируется] 
Redd  09.09.2022, 16:47
[игнорируется]
Немного не то, но точка разрыва найдена)
Поправил [:nya]
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SET @cout = 0;
SET @cout2 = 0;
SET @prev = 0;
SELECT
  @cout2 := @cout2 + 1 AS p,
  t2.f AS f,
  IF (@cout = @cout2, t2.l + 1, t2.l) AS l
FROM
  (SELECT
    IF (@cout = 0, 1, @prev) AS f,
    IF (@cout = 0, num, t.pos) AS l,
    @cout := @cout + 1,
    @prev := t.pos
  FROM
    (SELECT
      num,
      @pos := (SELECT num FROM ttt WHERE num > t1.num LIMIT 1),
      IF (num + 1 <> @pos, @pos, 0) AS pos
    FROM
      ttt t1) AS t
  WHERE
    t.pos > 0) AS t2
посмотри количество строк у меня и у тебя? тоже скажешь интуитивно понятно и просто
Вам же захотелось один запрос.. третий этаж в принципе не надо там надо элегантнее последнее значение вернуть
...
Рейтинг: 0 / 0
09.09.2022, 22:42
    #143424
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @t table (n int)
insert into @t (n) values (1)
insert into @t (n) values (2)
insert into @t (n) values (3)
insert into @t (n) values (7)
insert into @t (n) values (8)
insert into @t (n) values (10)
insert into @t (n) values (15)
insert into @t (n) values (16)
insert into @t (n) values (17)
insert into @t (n) values (18)
select [start] = t1.n from @t t1 where t1.n not in (select n + 1 from @t)
select [finish] = t1.n from @t t1 where t1.n not in (select n - 1 from @t)
результат:
start 1 7 10 15 finish 3 8 10 18
А как их сделать одной таблицей - хз. Скорее всего, очень просто, но я не знаю всех конструкций SQL.
...
Рейтинг: 0 / 0
09.09.2022, 22:51
    #143434
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Бля, коньяк внезапно кончился. А до скольки спиртное продают?
...
Рейтинг: 0 / 0
09.09.2022, 22:52
    #143435
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Папых со своими задачами лишил меня коньяка!
...
Рейтинг: 0 / 0
09.09.2022, 22:52
    #143437
Артефакт
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
у тебя есть еще 8 минут
...
Рейтинг: 1 / 0
09.09.2022, 22:55
    #143439
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Не, не успеваю.
...
Рейтинг: 0 / 0
09.09.2022, 22:58
    #143441
Тень на плетень
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Лунная скиталица  09.09.2022, 22:55
[игнорируется]
Артефакт  09.09.2022, 22:52
[игнорируется]
у тебя есть еще 8 минут
У меня муж за пивом так бывает гоняет. Я давай, еще 8 мин! Он чешет и такой без двух минут смотрю пробивает)) народ, говорит, пропускает если че, понимают типа беги,беги к кассе, без очереди даже))
Так есть же нелегальние алкашные ларьки. )
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
09.09.2022, 22:58
    #143443
Артефакт
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
пиво бывает очень нужно с утра
а приходится ждать 10ти
...
Рейтинг: 0 / 0
09.09.2022, 23:10
    #143455
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
У меня сейчас другая задачка, похожая на №2.
Есть таблица с datetime, известна периодичность данных, например, 4 секунды плюс-минус 0.1 секунды. Надо найти записи, между которыми период больше заданного и вставить туда строку. А курсоры не хочу юзать. Или тут без курсора никак?
...
Изменено: 09.09.2022, 23:11 - Просто Трёп
Рейтинг: 0 / 0
09.09.2022, 23:19
    #143456
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 23:10
[игнорируется]
У меня сейчас другая задачка, похожая на №2.
Есть таблица с datetime, известна периодичность данных, например, 4 секунды плюс-минус 0.1 секунды. Надо найти записи, между которыми период больше заданного и вставить туда строку. А курсоры не хочу юзать.
Формируй таблицу должных строк например за сутки год или хз
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with cte as
(
    SELECT convert(datetime,'20200501 05:00',120) as d
    UNION ALL
    SELECT dateadd(second,d,4)
    FROM cte
    WHERE d < convert(datetime,'20200502 05:00',120)
)
SELECT *
FROM cte
LEFT JOIN tbl
    ON tbl.d between dateadd(ss,-2,cte.d) AND dateadd(ss,+2,cte.d)
WHERE tbl.d is null
OPTION(maxrecursion 0)
Вывод пропусков. Вроде так, насколько я понял
...
Рейтинг: 1 / 0
Нравится: Просто Трёп
09.09.2022, 23:30
    #143462
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет [игнорируется] 

Ну что базаебище!, теперь мой выход[:biggrin2]
IMG_20220909_232844.jpg
...
Рейтинг: 1 / 0
Нравится: Дед-Папыхтет
09.09.2022, 23:40
    #143463
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 23:30
[игнорируется]
Дед-Папыхтет [игнорируется] 

Ну что базаебище!, теперь мой выход[:biggrin2]
IMG_20220909_232844.jpg
Я тоже винишко пью сухое
P_20220909_233912.jpg
...
Рейтинг: 1 / 0
Нравится: Redd
09.09.2022, 23:50
    #143468
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 23:19
[игнорируется]
Просто Трёп  09.09.2022, 23:10
[игнорируется]
У меня сейчас другая задачка, похожая на №2.
Есть таблица с datetime, известна периодичность данных, например, 4 секунды плюс-минус 0.1 секунды. Надо найти записи, между которыми период больше заданного и вставить туда строку. А курсоры не хочу юзать.
Формируй таблицу должных строк например за сутки год или хз
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with cte as
(
    SELECT convert(datetime,'20200501 05:00',120) as d
    UNION ALL
    SELECT dateadd(second,d,4)
    FROM cte
    WHERE d < convert(datetime,'20200502 05:00',120)
)
SELECT *
FROM cte
LEFT JOIN tbl
    ON tbl.d between dateadd(ss,-2,cte.d) AND dateadd(ss,+2,cte.d)
WHERE tbl.d is null
OPTION(maxrecursion 0)
Вывод пропусков. Вроде так, насколько я понял
Да, все правильно понял.

Смотрю на код мэтров и охуеваю. Что CTE можно использовать рекурсивно, я догадывался, но не думал, что это можно делать так смело на таких объемах. А вот что джойнить можно по битвин для меня реально открытие.
...
Рейтинг: 0 / 0
10.09.2022, 00:02
    #143475
Артефакт
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
о сколько нам открытий чудных
готовит просвещенья дух
...
Рейтинг: 0 / 0
10.09.2022, 00:13
    #143482
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 22:42
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @t table (n int)
insert into @t (n) values (1)
insert into @t (n) values (2)
insert into @t (n) values (3)
insert into @t (n) values (7)
insert into @t (n) values (8)
insert into @t (n) values (10)
insert into @t (n) values (15)
insert into @t (n) values (16)
insert into @t (n) values (17)
insert into @t (n) values (18)
select [start] = t1.n from @t t1 where t1.n not in (select n + 1 from @t)
select [finish] = t1.n from @t t1 where t1.n not in (select n - 1 from @t)
результат:
start 1 7 10 15 finish 3 8 10 18
А как их сделать одной таблицей - хз. Скорее всего, очень просто, но я не знаю всех конструкций SQL.
Я делал не через математику. Не знал, как там чего надо сложить/сгруппировать. Нашел сначала точки разрыва интервалов и от них уже плясал далее..
...
Рейтинг: 0 / 0
10.09.2022, 00:20
    #143483
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  10.09.2022, 00:13
[игнорируется]
Просто Трёп  09.09.2022, 22:42
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @t table (n int)
insert into @t (n) values (1)
insert into @t (n) values (2)
insert into @t (n) values (3)
insert into @t (n) values (7)
insert into @t (n) values (8)
insert into @t (n) values (10)
insert into @t (n) values (15)
insert into @t (n) values (16)
insert into @t (n) values (17)
insert into @t (n) values (18)
select [start] = t1.n from @t t1 where t1.n not in (select n + 1 from @t)
select [finish] = t1.n from @t t1 where t1.n not in (select n - 1 from @t)
результат:
start 1 7 10 15 finish 3 8 10 18
А как их сделать одной таблицей - хз. Скорее всего, очень просто, но я не знаю всех конструкций SQL.
Я делал не через математику. Не знал, как там чего надо сложить/сгруппировать. Нашел сначала точки разрыва интервалов и от них уже плясал далее..
Я предположил, что раз "одним запросом", значит, без курсоров и промежуточных таблиц. Значит, выход один, джойнить с чем-то. С чем? С той же таблицей, но смещенной на единицу вниз или вверх. Потыкался, помыкался, не получилось. Ну и забил. Два моих селекта - не решение.
...
Рейтинг: 0 / 0
10.09.2022, 00:28
    #143484
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  10.09.2022, 00:20
[игнорируется]
Redd  10.09.2022, 00:13
[игнорируется]
Просто Трёп  09.09.2022, 22:42
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @t table (n int)
insert into @t (n) values (1)
insert into @t (n) values (2)
insert into @t (n) values (3)
insert into @t (n) values (7)
insert into @t (n) values (8)
insert into @t (n) values (10)
insert into @t (n) values (15)
insert into @t (n) values (16)
insert into @t (n) values (17)
insert into @t (n) values (18)
select [start] = t1.n from @t t1 where t1.n not in (select n + 1 from @t)
select [finish] = t1.n from @t t1 where t1.n not in (select n - 1 from @t)
результат:
start 1 7 10 15 finish 3 8 10 18
А как их сделать одной таблицей - хз. Скорее всего, очень просто, но я не знаю всех конструкций SQL.
Я делал не через математику. Не знал, как там чего надо сложить/сгруппировать. Нашел сначала точки разрыва интервалов и от них уже плясал далее..
Я предположил, что раз "одним запросом", значит, без курсоров и промежуточных таблиц. Значит, выход один, джойнить с чем-то. С чем? С той же таблицей, но смещенной на единицу вниз или вверх. Потыкался, помыкался, не получилось. Ну и забил. Два моих селекта - не решение.
С точек разрыва и выбираешь, и строишь все, от 1 до первого разрыва, от первого до второго и тд, только финт яйцами, что надо запоминаешь предыдущее значение где был разрыв на каждой итерации.. Ну как-то так[:dntknw2]
...
Рейтинг: 0 / 0
10.09.2022, 00:30
    #143485
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  10.09.2022, 00:28
[игнорируется]
Просто Трёп  10.09.2022, 00:20
[игнорируется]
Redd  10.09.2022, 00:13
[игнорируется]
Просто Трёп  09.09.2022, 22:42
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
...
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @t table (n int)
insert into @t (n) values (1)
insert into @t (n) values (2)
insert into @t (n) values (3)
insert into @t (n) values (7)
insert into @t (n) values (8)
insert into @t (n) values (10)
insert into @t (n) values (15)
insert into @t (n) values (16)
insert into @t (n) values (17)
insert into @t (n) values (18)
select [start] = t1.n from @t t1 where t1.n not in (select n + 1 from @t)
select [finish] = t1.n from @t t1 where t1.n not in (select n - 1 from @t)
результат:
start 1 7 10 15 finish 3 8 10 18
А как их сделать одной таблицей - хз. Скорее всего, очень просто, но я не знаю всех конструкций SQL.
Я делал не через математику. Не знал, как там чего надо сложить/сгруппировать. Нашел сначала точки разрыва интервалов и от них уже плясал далее..
Я предположил, что раз "одним запросом", значит, без курсоров и промежуточных таблиц. Значит, выход один, джойнить с чем-то. С чем? С той же таблицей, но смещенной на единицу вниз или вверх. Потыкался, помыкался, не получилось. Ну и забил. Два моих селекта - не решение.
С точек разрыва и выбираешь, и строишь все, от 1 до первого разрыва, от первого до второго и тд, только финт яйцами, что надо запоминаешь предыдущее значение где был разрыв на каждой итерации.. Ну как-то так[:dntknw2]
Так это процедурное решение. А СКЛ - язык чтоб множествами оперировать.
...
Рейтинг: 0 / 0
10.09.2022, 00:32
    #143486
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  10.09.2022, 00:30
[игнорируется]
Redd  10.09.2022, 00:28
[игнорируется]
Просто Трёп  10.09.2022, 00:20
[игнорируется]
Redd  10.09.2022, 00:13
[игнорируется]
Просто Трёп  09.09.2022, 22:42
[игнорируется]
...
Я делал не через математику. Не знал, как там чего надо сложить/сгруппировать. Нашел сначала точки разрыва интервалов и от них уже плясал далее..
Я предположил, что раз "одним запросом", значит, без курсоров и промежуточных таблиц. Значит, выход один, джойнить с чем-то. С чем? С той же таблицей, но смещенной на единицу вниз или вверх. Потыкался, помыкался, не получилось. Ну и забил. Два моих селекта - не решение.
С точек разрыва и выбираешь, и строишь все, от 1 до первого разрыва, от первого до второго и тд, только финт яйцами, что надо запоминаешь предыдущее значение где был разрыв на каждой итерации.. Ну как-то так[:dntknw2]
Так это процедурное решение. А СКЛ - язык чтоб множествами оперировать.
Нет. Выше мой код, там нет никаких процедур, функций, ничего из этого и норм
...
Рейтинг: 0 / 0
10.09.2022, 00:48
    #143487
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Вот, мое решение. Требования выполнены. Но мне этот роунамбер не нра.
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare @t table (n int)
insert into @t (n) values (1)
insert into @t (n) values (2)
insert into @t (n) values (3)
insert into @t (n) values (7)
insert into @t (n) values (8)
insert into @t (n) values (10)
insert into @t (n) values (15)
insert into @t (n) values (16)
insert into @t (n) values (17)
insert into @t (n) values (18)

;with t4 (rn, n) as (select rn = row_number() over (order by t1.n), [start] = t1.n from @t t1 where t1.n not in (select n + 1 from @t)),
t5 (rn, n) as (select rn = row_number() over (order by t2.n), [finish] = t2.n from @t t2 where t2.n not in (select n - 1 from @t))
select t4.n start, t5.n finish from t4 inner join t5 on t4.rn = t5.rn
1 3 7 8 10 10 15 18
...
Рейтинг: 0 / 0
10.09.2022, 00:51
    #143488
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  10.09.2022, 00:32
[игнорируется]
Просто Трёп  10.09.2022, 00:30
[игнорируется]
Redd  10.09.2022, 00:28
[игнорируется]
Просто Трёп  10.09.2022, 00:20
[игнорируется]
Redd  10.09.2022, 00:13
[игнорируется]
...
Я предположил, что раз "одним запросом", значит, без курсоров и промежуточных таблиц. Значит, выход один, джойнить с чем-то. С чем? С той же таблицей, но смещенной на единицу вниз или вверх. Потыкался, помыкался, не получилось. Ну и забил. Два моих селекта - не решение.
С точек разрыва и выбираешь, и строишь все, от 1 до первого разрыва, от первого до второго и тд, только финт яйцами, что надо запоминаешь предыдущее значение где был разрыв на каждой итерации.. Ну как-то так[:dntknw2]
Так это процедурное решение. А СКЛ - язык чтоб множествами оперировать.
Нет. Выше мой код, там нет никаких процедур, функций, ничего из этого и норм
Ты описываешь алгоритм, когда говоришь "от разрыва до разрыва", "запоминаешь". А СКЛ не для алгоритмов. Он для того, чтобы описать результат.
...
Рейтинг: 0 / 0
10.09.2022, 01:21
    #143490
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  09.09.2022, 23:30
[игнорируется]
Дед-Папыхтет [игнорируется] 

Ну что базаебище!, теперь мой выход[:biggrin2]
IMG_20220909_232844.jpg
понедельник выходной?
...
Рейтинг: 1 / 0
Нравится: PaNik
10.09.2022, 01:23
    #143491
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  10.09.2022, 00:13
[игнорируется]
Просто Трёп  09.09.2022, 22:42
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @t table (n int)
insert into @t (n) values (1)
insert into @t (n) values (2)
insert into @t (n) values (3)
insert into @t (n) values (7)
insert into @t (n) values (8)
insert into @t (n) values (10)
insert into @t (n) values (15)
insert into @t (n) values (16)
insert into @t (n) values (17)
insert into @t (n) values (18)
select [start] = t1.n from @t t1 where t1.n not in (select n + 1 from @t)
select [finish] = t1.n from @t t1 where t1.n not in (select n - 1 from @t)
результат:
start 1 7 10 15 finish 3 8 10 18
А как их сделать одной таблицей - хз. Скорее всего, очень просто, но я не знаю всех конструкций SQL.
Я делал не через математику. Не знал, как там чего надо сложить/сгруппировать. Нашел сначала точки разрыва интервалов и от них уже плясал далее..
потому что ты долбоклюй
...
Рейтинг: 0 / 0
10.09.2022, 01:24
    #143492
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  10.09.2022, 00:20
[игнорируется]
Redd  10.09.2022, 00:13
[игнорируется]
Просто Трёп  09.09.2022, 22:42
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
Задачка №2. ))))) тоже лвл мидла наверное посложнее предыдущей немного, для тех кто не сталкивался.

Есть таблица T из одного поля TAB_NO с уникальными целыми числами, необходимо найти и вывести непрерывные диапазоны одним запросом ))))

пример
table t(tab_no int)

tab_no
1
2
3
7
8
10
15
16
17
18

результат должен быть:
start finish 1 3 7 8 10 10 15 18
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @t table (n int)
insert into @t (n) values (1)
insert into @t (n) values (2)
insert into @t (n) values (3)
insert into @t (n) values (7)
insert into @t (n) values (8)
insert into @t (n) values (10)
insert into @t (n) values (15)
insert into @t (n) values (16)
insert into @t (n) values (17)
insert into @t (n) values (18)
select [start] = t1.n from @t t1 where t1.n not in (select n + 1 from @t)
select [finish] = t1.n from @t t1 where t1.n not in (select n - 1 from @t)
результат:
start 1 7 10 15 finish 3 8 10 18
А как их сделать одной таблицей - хз. Скорее всего, очень просто, но я не знаю всех конструкций SQL.
Я делал не через математику. Не знал, как там чего надо сложить/сгруппировать. Нашел сначала точки разрыва интервалов и от них уже плясал далее..
Я предположил, что раз "одним запросом", значит, без курсоров и промежуточных таблиц. Значит, выход один, джойнить с чем-то. С чем? С той же таблицей, но смещенной на единицу вниз или вверх. Потыкался, помыкался, не получилось. Ну и забил. Два моих селекта - не решение.
я предположил что если есть один культурный запрос начала диапазонов, то другой кульурный запрос конца диапазонов будет тождественнен.
одно начало один конец. поэтому их можно сджоинить по номеру строки.
...
Рейтинг: 0 / 0
10.09.2022, 01:26
    #143493
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  10.09.2022, 00:28
[игнорируется]
Просто Трёп  10.09.2022, 00:20
[игнорируется]
Redd  10.09.2022, 00:13
[игнорируется]
Просто Трёп  09.09.2022, 22:42
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
...
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @t table (n int)
insert into @t (n) values (1)
insert into @t (n) values (2)
insert into @t (n) values (3)
insert into @t (n) values (7)
insert into @t (n) values (8)
insert into @t (n) values (10)
insert into @t (n) values (15)
insert into @t (n) values (16)
insert into @t (n) values (17)
insert into @t (n) values (18)
select [start] = t1.n from @t t1 where t1.n not in (select n + 1 from @t)
select [finish] = t1.n from @t t1 where t1.n not in (select n - 1 from @t)
результат:
start 1 7 10 15 finish 3 8 10 18
А как их сделать одной таблицей - хз. Скорее всего, очень просто, но я не знаю всех конструкций SQL.
Я делал не через математику. Не знал, как там чего надо сложить/сгруппировать. Нашел сначала точки разрыва интервалов и от них уже плясал далее..
Я предположил, что раз "одним запросом", значит, без курсоров и промежуточных таблиц. Значит, выход один, джойнить с чем-то. С чем? С той же таблицей, но смещенной на единицу вниз или вверх. Потыкался, помыкался, не получилось. Ну и забил. Два моих селекта - не решение.
С точек разрыва и выбираешь, и строишь все, от 1 до первого разрыва, от первого до второго и тд, только финт яйцами, что надо запоминаешь предыдущее значение где был разрыв на каждой итерации.. Ну как-то так[:dntknw2]
это на вашей машадб которая наташа
...
Рейтинг: 0 / 0
10.09.2022, 01:32
    #143498
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  10.09.2022, 00:51
[игнорируется]
Redd  10.09.2022, 00:32
[игнорируется]
Просто Трёп  10.09.2022, 00:30
[игнорируется]
Redd  10.09.2022, 00:28
[игнорируется]
Просто Трёп  10.09.2022, 00:20
[игнорируется]
...
С точек разрыва и выбираешь, и строишь все, от 1 до первого разрыва, от первого до второго и тд, только финт яйцами, что надо запоминаешь предыдущее значение где был разрыв на каждой итерации.. Ну как-то так[:dntknw2]
Так это процедурное решение. А СКЛ - язык чтоб множествами оперировать.
Нет. Выше мой код, там нет никаких процедур, функций, ничего из этого и норм
Ты описываешь алгоритм, когда говоришь "от разрыва до разрыва", "запоминаешь". А СКЛ не для алгоритмов. Он для того, чтобы описать результат.
Главное чтоб понятно было)
...
Рейтинг: 0 / 0
10.09.2022, 01:32
    #143500
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  10.09.2022, 01:21
[игнорируется]
Redd  09.09.2022, 23:30
[игнорируется]
Дед-Папыхтет [игнорируется] 

Ну что базаебище!, теперь мой выход[:biggrin2]
IMG_20220909_232844.jpg
понедельник выходной?
У тебя скорее всего, тыж бездельник-долбоеб
...
Рейтинг: 0 / 0
10.09.2022, 01:55
    #143505
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  10.09.2022, 01:32
[игнорируется]
Doublekey  10.09.2022, 01:21
[игнорируется]
Redd  09.09.2022, 23:30
[игнорируется]
Дед-Папыхтет [игнорируется] 

Ну что базаебище!, теперь мой выход[:biggrin2]
IMG_20220909_232844.jpg
понедельник выходной?
У тебя скорее всего, тыж бездельник-долбоеб
У меня и в пятницу был выходной. в понедельник может чуть чуть поработаю. А ты сможешь в воскресенье вечером остановицццо?
...
Рейтинг: 0 / 0
10.09.2022, 02:05
    #143507
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  10.09.2022, 01:55
[игнорируется]
Redd  10.09.2022, 01:32
[игнорируется]
Doublekey  10.09.2022, 01:21
[игнорируется]
Redd  09.09.2022, 23:30
[игнорируется]
Дед-Папыхтет [игнорируется] 

Ну что базаебище!, теперь мой выход[:biggrin2]
IMG_20220909_232844.jpg
понедельник выходной?
У тебя скорее всего, тыж бездельник-долбоеб
У меня и в пятницу был выходной. в понедельник может чуть чуть поработаю. А ты сможешь в воскресенье вечером остановицццо?
Да я никуда не разгоняюсь. Завтра еще дела, потом ребенок запланирован на выходные..
...
Рейтинг: 0 / 0
10.09.2022, 06:06
    #143521
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 23:10
[игнорируется]
У меня сейчас другая задачка, похожая на №2.
Есть таблица с datetime, известна периодичность данных, например, 4 секунды плюс-минус 0.1 секунды. Надо найти записи, между которыми период больше заданного и вставить туда строку. А курсоры не хочу юзать. Или тут без курсора никак?
Сортированную по времени таблицу соедини саму с собой по rownum и rownum+1 и вычисляй интервалы
...
Рейтинг: 0 / 0
10.09.2022, 07:05
    #143531
9288
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Это если уж совсем аналитику не любишь
Но с LAG/LEAD намного оптимальней
...
Рейтинг: 1 / 0
Нравится: eNose
10.09.2022, 09:10
    #143559
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 16:43
[игнорируется]
из книжки Ицика-Бен-Гана
На следующем собеседовании попроси ее художественный пересказ
...
Рейтинг: 2 / 0
Нравится: eNose, Дед-Папыхтет
10.09.2022, 09:13
    #143563
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  09.09.2022, 23:50
[игнорируется]
А вот что джойнить можно по битвин для меня реально открытие.
По датам аккуратнее надо, крайние значения потерять можно при случае
...
Рейтинг: 0 / 0
10.09.2022, 10:23
    #143583
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
9288  10.09.2022, 07:05
[игнорируется]
Это если уж совсем аналитику не любишь
Но с LAG/LEAD намного оптимальней
Это если дадут интернета кусок или если помнишь наизусть синтаксис всяких там овер и партишинов
...
Рейтинг: 0 / 0
10.09.2022, 10:35
    #143588
9288
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
...
Рейтинг: 0 / 0
10.09.2022, 11:15
    #143626
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
9288  10.09.2022, 10:35
[игнорируется]
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
Все не могу запомнить и в режиме писать на бумаге, это анриал. Рассказать тока смог бы. Ну мысль и немного накорябать..
Яваскрипт, пхп, Ява, котлин, скл и около, все это гавно держать в башке анриал, все перемешалось уже [:biggrin2]
...
Рейтинг: 0 / 0
10.09.2022, 12:06
    #143691
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  10.09.2022, 11:15
[игнорируется]
9288  10.09.2022, 10:35
[игнорируется]
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
Все не могу запомнить и в режиме писать на бумаге, это анриал. Рассказать тока смог бы. Ну мысль и немного накорябать..
Яваскрипт, пхп, Ява, котлин, скл и около, все это гавно держать в башке анриал, все перемешалось уже [:biggrin2]
"Поэтому саша и не женицуо" огм
...
Рейтинг: 0 / 0
10.09.2022, 12:09
    #143693
Redd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  10.09.2022, 12:06
[игнорируется]
Redd  10.09.2022, 11:15
[игнорируется]
9288  10.09.2022, 10:35
[игнорируется]
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
Все не могу запомнить и в режиме писать на бумаге, это анриал. Рассказать тока смог бы. Ну мысль и немного накорябать..
Яваскрипт, пхп, Ява, котлин, скл и около, все это гавно держать в башке анриал, все перемешалось уже [:biggrin2]
"Поэтому саша и не женицуо" огм
Любишь меня[:lol]?
...
Рейтинг: 0 / 0
10.09.2022, 12:10
    #143694
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
9288  10.09.2022, 10:35
[игнорируется]
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
Лаги лиды надо знать а еще надо знать что у него три параметра на сама деле а не один. Мне весной дали 12 что ли задачек. Я на 6-ой устал сломался.
Это был ГПБ и я намертво забыл синтаксис партишин бая. Клин случилсо. Ну и согласились что надо кончать.

Аналитику с примерами на бумажке просят 9 из 10
...
Рейтинг: 0 / 0
10.09.2022, 12:11
    #143696
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  10.09.2022, 01:32
[игнорируется]
Просто Трёп  10.09.2022, 00:51
[игнорируется]
Redd  10.09.2022, 00:32
[игнорируется]
Просто Трёп  10.09.2022, 00:30
[игнорируется]
Redd  10.09.2022, 00:28
[игнорируется]
...
Так это процедурное решение. А СКЛ - язык чтоб множествами оперировать.
Нет. Выше мой код, там нет никаких процедур, функций, ничего из этого и норм
Ты описываешь алгоритм, когда говоришь "от разрыва до разрыва", "запоминаешь". А СКЛ не для алгоритмов. Он для того, чтобы описать результат.
Главное чтоб понятно было)
Видели мы твое понятно на машкодб. Страница кода блеат
...
Рейтинг: 0 / 0
10.09.2022, 12:11
    #143697
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Redd  10.09.2022, 12:09
[игнорируется]
Doublekey  10.09.2022, 12:06
[игнорируется]
Redd  10.09.2022, 11:15
[игнорируется]
9288  10.09.2022, 10:35
[игнорируется]
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
Все не могу запомнить и в режиме писать на бумаге, это анриал. Рассказать тока смог бы. Ну мысль и немного накорябать..
Яваскрипт, пхп, Ява, котлин, скл и около, все это гавно держать в башке анриал, все перемешалось уже [:biggrin2]
"Поэтому саша и не женицуо" огм
Любишь меня[:lol]?
Нет. Ты просто винегретчик
...
Рейтинг: 0 / 0
10.09.2022, 12:14
    #143702
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Здесь я прусь традиционно от ПапЫХТЕда
...
Рейтинг: 0 / 0
10.09.2022, 14:33
    #143778
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  10.09.2022, 12:10
[игнорируется]
9288  10.09.2022, 10:35
[игнорируется]
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
Лаги лиды надо знать а еще надо знать что у него три параметра на сама деле а не один. Мне весной дали 12 что ли задачек. Я на 6-ой устал сломался.
Это был ГПБ и я намертво забыл синтаксис партишин бая. Клин случилсо. Ну и согласились что надо кончать.

Аналитику с примерами на бумажке просят 9 из 10
Нецелевое расходование леса нашего богатства.

Расстрелять.
...
Рейтинг: 0 / 0
23.09.2022, 14:58
    #160816
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  09.09.2022, 23:19
[игнорируется]
Просто Трёп  09.09.2022, 23:10
[игнорируется]
У меня сейчас другая задачка, похожая на №2.
Есть таблица с datetime, известна периодичность данных, например, 4 секунды плюс-минус 0.1 секунды. Надо найти записи, между которыми период больше заданного и вставить туда строку. А курсоры не хочу юзать.
Формируй таблицу должных строк например за сутки год или хз
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with cte as
(
    SELECT convert(datetime,'20200501 05:00',120) as d
    UNION ALL
    SELECT dateadd(second,d,4)
    FROM cte
    WHERE d < convert(datetime,'20200502 05:00',120)
)
SELECT *
FROM cte
LEFT JOIN tbl
    ON tbl.d between dateadd(ss,-2,cte.d) AND dateadd(ss,+2,cte.d)
WHERE tbl.d is null
OPTION(maxrecursion 0)
Вывод пропусков. Вроде так, насколько я понял
Попробовал эту схему. Реально летает. Решил избавиться от cte, создать таблицу с нужными интервалами сразу лет на 50. Но поскольку эту таблицу надо будет юзать в нескольких базах, сделал ее вообще в отдельной базе. Ну и когда заджойнил ее с рабочей таблицей, выполнение получилось 9 секунд. Хотя с cte были доли секунды.

Подозреваю, что если джойнить таблицы из разных баз, индексы перестают работать. Ошибаюсь? Или наоборот, те индексы, что я создал в таблице с интервалами, могут мешать отдаче? В cte-то индексов нет.

Выкладывать код, или решение на поверхности?
...
Рейтинг: 0 / 0
23.09.2022, 15:04
    #160818
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Поудалял индексы с таблицы интервалов, время выполнения уменьшилось с 9 секунд до 3. Чудеса.
...
Рейтинг: 0 / 0
23.09.2022, 15:29
    #160845
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  23.09.2022, 14:58
[игнорируется]
сделал ее вообще в отдельной базе. Ну и когда заджойнил ее с рабочей таблицей, выполнение получилось 9 секунд. Хотя с cte были доли секунды.
Так это...
Как его...
Я не думаю, что принципиально работа с удалённой БД отличается в оракле и мс скуле, доступ по линку всегда медленный.
...
Рейтинг: 0 / 0
23.09.2022, 15:31
    #160848
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  23.09.2022, 14:58
[игнорируется]
Дед-Папыхтет  09.09.2022, 23:19
[игнорируется]
Просто Трёп  09.09.2022, 23:10
[игнорируется]
У меня сейчас другая задачка, похожая на №2.
Есть таблица с datetime, известна периодичность данных, например, 4 секунды плюс-минус 0.1 секунды. Надо найти записи, между которыми период больше заданного и вставить туда строку. А курсоры не хочу юзать.
Формируй таблицу должных строк например за сутки год или хз
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with cte as
(
    SELECT convert(datetime,'20200501 05:00',120) as d
    UNION ALL
    SELECT dateadd(second,d,4)
    FROM cte
    WHERE d < convert(datetime,'20200502 05:00',120)
)
SELECT *
FROM cte
LEFT JOIN tbl
    ON tbl.d between dateadd(ss,-2,cte.d) AND dateadd(ss,+2,cte.d)
WHERE tbl.d is null
OPTION(maxrecursion 0)
Вывод пропусков. Вроде так, насколько я понял
Попробовал эту схему. Реально летает. Решил избавиться от cte, создать таблицу с нужными интервалами сразу лет на 50. Но поскольку эту таблицу надо будет юзать в нескольких базах, сделал ее вообще в отдельной базе. Ну и когда заджойнил ее с рабочей таблицей, выполнение получилось 9 секунд. Хотя с cte были доли секунды.

Подозреваю, что если джойнить таблицы из разных баз, индексы перестают работать. Ошибаюсь? Или наоборот, те индексы, что я создал в таблице с интервалами, могут мешать отдаче? В cte-то индексов нет.

Выкладывать код, или решение на поверхности?
Таблица предварительно созданная из одного поля с первичным ключём?
...
Рейтинг: 0 / 0
23.09.2022, 15:32
    #160849
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  23.09.2022, 15:04
[игнорируется]
Поудалял индексы с таблицы интервалов, время выполнения уменьшилось с 9 секунд до 3. Чудеса.
Потому что быстрее закачать всю таблицу видимо.
В оракле есть хинт DRIVING_SITE, он может заставить отработать запрос на стороне удалённой БД, но из-за сетевых задержек всё равно может быть медленнее, чем с таблицей в самой БД.
...
Рейтинг: 0 / 0
23.09.2022, 15:34
    #160854
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  23.09.2022, 15:31
[игнорируется]
Просто Трёп  23.09.2022, 14:58
[игнорируется]
Дед-Папыхтет  09.09.2022, 23:19
[игнорируется]
Просто Трёп  09.09.2022, 23:10
[игнорируется]
У меня сейчас другая задачка, похожая на №2.
Есть таблица с datetime, известна периодичность данных, например, 4 секунды плюс-минус 0.1 секунды. Надо найти записи, между которыми период больше заданного и вставить туда строку. А курсоры не хочу юзать.
Формируй таблицу должных строк например за сутки год или хз
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with cte as
(
    SELECT convert(datetime,'20200501 05:00',120) as d
    UNION ALL
    SELECT dateadd(second,d,4)
    FROM cte
    WHERE d < convert(datetime,'20200502 05:00',120)
)
SELECT *
FROM cte
LEFT JOIN tbl
    ON tbl.d between dateadd(ss,-2,cte.d) AND dateadd(ss,+2,cte.d)
WHERE tbl.d is null
OPTION(maxrecursion 0)
Вывод пропусков. Вроде так, насколько я понял
Попробовал эту схему. Реально летает. Решил избавиться от cte, создать таблицу с нужными интервалами сразу лет на 50. Но поскольку эту таблицу надо будет юзать в нескольких базах, сделал ее вообще в отдельной базе. Ну и когда заджойнил ее с рабочей таблицей, выполнение получилось 9 секунд. Хотя с cte были доли секунды.

Подозреваю, что если джойнить таблицы из разных баз, индексы перестают работать. Ошибаюсь? Или наоборот, те индексы, что я создал в таблице с интервалами, могут мешать отдаче? В cte-то индексов нет.

Выкладывать код, или решение на поверхности?
Таблица предварительно созданная из одного поля с первичным ключём?
Не, там два поля, int и datetime. Первичный ключ - инт, на datetime индекс повесил. В cte точно также, два поля.
...
Рейтинг: 0 / 0
23.09.2022, 15:34
    #160857
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  23.09.2022, 15:34
[игнорируется]
Дед-Папыхтет  23.09.2022, 15:31
[игнорируется]
Просто Трёп  23.09.2022, 14:58
[игнорируется]
Дед-Папыхтет  09.09.2022, 23:19
[игнорируется]
Просто Трёп  09.09.2022, 23:10
[игнорируется]
...
Формируй таблицу должных строк например за сутки год или хз
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with cte as
(
    SELECT convert(datetime,'20200501 05:00',120) as d
    UNION ALL
    SELECT dateadd(second,d,4)
    FROM cte
    WHERE d < convert(datetime,'20200502 05:00',120)
)
SELECT *
FROM cte
LEFT JOIN tbl
    ON tbl.d between dateadd(ss,-2,cte.d) AND dateadd(ss,+2,cte.d)
WHERE tbl.d is null
OPTION(maxrecursion 0)
Вывод пропусков. Вроде так, насколько я понял
Попробовал эту схему. Реально летает. Решил избавиться от cte, создать таблицу с нужными интервалами сразу лет на 50. Но поскольку эту таблицу надо будет юзать в нескольких базах, сделал ее вообще в отдельной базе. Ну и когда заджойнил ее с рабочей таблицей, выполнение получилось 9 секунд. Хотя с cte были доли секунды.

Подозреваю, что если джойнить таблицы из разных баз, индексы перестают работать. Ошибаюсь? Или наоборот, те индексы, что я создал в таблице с интервалами, могут мешать отдаче? В cte-то индексов нет.

Выкладывать код, или решение на поверхности?
Таблица предварительно созданная из одного поля с первичным ключём?
Не, там два поля, int и datetime. Первичный ключ - инт, на datetime индекс повесил. В cte точно также, два поля.
Таблицу в этой же бд сделай скорость замерь
...
Рейтинг: 0 / 0
23.09.2022, 15:36
    #160861
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Я int столбец добавил, потому что подумал, что по нему группировку лучше будет делать. Теперь понимаю, что он лишний. По дате группировка такая же будет.
...
Рейтинг: 0 / 0
23.09.2022, 15:36
    #160862
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  23.09.2022, 15:34
[игнорируется]
Просто Трёп  23.09.2022, 15:34
[игнорируется]
Дед-Папыхтет  23.09.2022, 15:31
[игнорируется]
Просто Трёп  23.09.2022, 14:58
[игнорируется]
Дед-Папыхтет  09.09.2022, 23:19
[игнорируется]
...
Попробовал эту схему. Реально летает. Решил избавиться от cte, создать таблицу с нужными интервалами сразу лет на 50. Но поскольку эту таблицу надо будет юзать в нескольких базах, сделал ее вообще в отдельной базе. Ну и когда заджойнил ее с рабочей таблицей, выполнение получилось 9 секунд. Хотя с cte были доли секунды.

Подозреваю, что если джойнить таблицы из разных баз, индексы перестают работать. Ошибаюсь? Или наоборот, те индексы, что я создал в таблице с интервалами, могут мешать отдаче? В cte-то индексов нет.

Выкладывать код, или решение на поверхности?
Таблица предварительно созданная из одного поля с первичным ключём?
Не, там два поля, int и datetime. Первичный ключ - инт, на datetime индекс повесил. В cte точно также, два поля.
Таблицу в этой же бд сделай скорость замерь
ок.
...
Рейтинг: 0 / 0
23.09.2022, 16:03
    #160907
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Сделал в этой же бд, не помогло. Назначил единственный столбец Prmairy Key, ничего не изменилось.
В общем, идентичный код, с cte - доли секунды, с существующей таблицей - 3-4 секунды.
...
Рейтинг: 0 / 0
23.09.2022, 16:14
    #160928
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Код: 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.
--table
SELECT i_days.dt, count(1) cnt, sum(calls.duration)/60 d_min
FROM i_days left join calls on calls.dt between i_days.dt and dateadd(day, 1, i_days.dt)
where
  calls.incoming = 1 and calls.ext not like '6%' and calls.cd <> 'TR'
  and  i_days.dt between '2017-05-18T00:00:00.000' and '2022-09-23T00:00:00.000'
group by i_days.dt
order by 1

--cte
;with cte as
(
    SELECT convert(datetime,'2000-01-01T00:00:00.000') as sdt
    UNION ALL
    SELECT dateadd(day, 1, sdt)
    FROM cte
    WHERE sdt < convert(datetime,'2041-01-01T00:00:00.000')
)
SELECT cte.sdt, count(1) cnt, sum(calls.duration)/60 d_min
FROM cte left join calls on calls.dt between cte.sdt and dateadd(day, 1, cte.sdt)
where
  calls.incoming = 1 and calls.ext not like '6%' and calls.cd <> 'TR'
  and  cte.sdt between '2017-05-18T00:00:00.000' and '2022-09-23T00:00:00.000'
group by cte.sdt
order by 1
OPTION(maxrecursion 0)
...
Рейтинг: 0 / 0
23.09.2022, 18:31
    #161078
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  23.09.2022, 16:14
[игнорируется]
Код: SQL
1.
i_days
Код: SQL
1.
create unique index ix123 on i_days (dt)
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT i_days.dt, count(1) cnt, sum(calls.duration)/60 d_min
FROM i_days left join calls
  --on calls.dt between i_days.dt and dateadd(day, 1, i_days.dt)
  --on calls.dt >= i_days.dt and calls.dt <= dateadd(day, 1, i_days.dt)
  on calls.dt >= i_days.dt and i_days.dt >= dateadd(day,-1,calls.dt)
where
  calls.incoming = 1 and calls.ext not like '6%' and calls.cd <> 'TR'
  and  i_days.dt between '2017-05-18T00:00:00.000' and '2022-09-23T00:00:00.000'
group by i_days.dt
order by 1
3 условия в ON попробуй с каждым + индекс. Сравни.
...
Рейтинг: 0 / 0
23.09.2022, 19:16
    #161129
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Ок. Праймари кей нужен? Или только юник индекс?
...
Рейтинг: 0 / 0
23.09.2022, 19:18
    #161131
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  23.09.2022, 19:16
[игнорируется]
Ок. Праймари кей нужен? Или только юник индекс?
Unique index - тоже самое что primaru key. Если у тебя по другому полю первичный ключ то. Ндекс если одно поле первичный ключ
...
Рейтинг: 0 / 0
23.09.2022, 19:21
    #161134
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  23.09.2022, 19:18
[игнорируется]
Unique index - тоже самое что primaru key.
Да? В primary key может быть null? Ой!
...
Рейтинг: 0 / 1
Не нравится: Vaska Balboa
23.09.2022, 19:37
    #161160
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  23.09.2022, 19:18
[игнорируется]
Просто Трёп  23.09.2022, 19:16
[игнорируется]
Ок. Праймари кей нужен? Или только юник индекс?
Unique index - тоже самое что primaru key. Если у тебя по другому полю первичный ключ то. Ндекс если одно поле первичный ключ
Попых ты что пьешь что ли уже?

В поле под праймари кеем НЕ может быть нуллов. в поле под юник индексом МОЖЕТ быть нулл.

вот юник индекс и индекс на колонку которая примари кей да одно и тоже.
...
Рейтинг: 0 / 0
23.09.2022, 19:40
    #161165
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
И вообще Попых как тебе нестыдно. Примари кей и юник индекс это вообще разные сущности. потому что примари кей создается как констрейнт. а индекс это индекс.
...
Рейтинг: 0 / 0
23.09.2022, 19:44
    #161166
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Не бейте Папыха! Он нам еще нужен!

В контексте вопроса-то он правильно сказал. В том поле не может быть нуллов и она обязательно уникальна. А вот какой будет план запроса в том и другом случае - тайна велика! Для экспресс эдишна.
...
Рейтинг: 0 / 0
23.09.2022, 19:47
    #161168
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  23.09.2022, 19:44
[игнорируется]
Не бейте Папыха! Он нам еще нужен!

В контексте вопроса-то он правильно сказал. В том поле не может быть нуллов и она обязательно уникальна. А вот какой будет план запроса в том и другом случае - тайна велика! Для экспресс эдишна.
мне один человек говорил что индексы по датам так себе идея. но может быть но был неправ
...
Рейтинг: 0 / 0
23.09.2022, 20:17
    #161197
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
...
Рейтинг: 0 / 0
23.09.2022, 20:24
    #161202
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
Наверное по любым числам индекс так себе идея.
Ведь дата это число.
...
Рейтинг: 0 / 0
23.09.2022, 20:34
    #161215
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose [игнорируется] 

Может в МС СКЛ дата - это текст?
...
Рейтинг: 0 / 0
23.09.2022, 20:35
    #161219
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  23.09.2022, 20:34
[игнорируется]
eNose [игнорируется] 

Может в МС СКЛ дата - это текст?
blob
...
Рейтинг: 0 / 0
23.09.2022, 20:36
    #161220
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  23.09.2022, 20:35
[игнорируется]
Горбатый ёж  23.09.2022, 20:34
[игнорируется]
eNose [игнорируется] 

Может в МС СКЛ дата - это текст?
blob
Как интересно...
...
Рейтинг: 0 / 0
23.09.2022, 20:38
    #161224
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
хотя кстати он наверно дату со временем имел ввиду
...
Рейтинг: 0 / 0
23.09.2022, 20:39
    #161227
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  23.09.2022, 20:24
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
Наверное по любым числам индекс так себе идея.
Ведь дата это число.
ты считаешь что индексы надо по строкам строить в основном

я тут видел таблицу с первичными ключами на колонках типа char(4) плакал
...
Рейтинг: 0 / 0
23.09.2022, 20:39
    #161229
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
eNose  23.09.2022, 20:35
[игнорируется]
Горбатый ёж  23.09.2022, 20:34
[игнорируется]
eNose [игнорируется] 

Может в МС СКЛ дата - это текст?
blob
xmltype
...
Рейтинг: 0 / 0
23.09.2022, 20:43
    #161238
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  23.09.2022, 19:40
[игнорируется]
И вообще Попых как тебе нестыдно. Примари кей и юник индекс это вообще разные сущности. потому что примари кей создается как констрейнт. а индекс это индекс.
Если поле нот нал то одно и тоже. Форин Кей можно на ПК и на УК создавать. Холивар поднимаете )))))

Table(id int not null)

Равнозначно

Primary key clustered(id)
=
Unique clustered index(id)

Понятно сущности названия разные но в остальном эквивалент
...
Рейтинг: 0 / 0
23.09.2022, 20:44
    #161241
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
Вырвано из контекста. В лом объяснять...)
...
Рейтинг: 0 / 0
23.09.2022, 20:57
    #161257
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  23.09.2022, 20:43
[игнорируется]
Холивар поднимаете )))))
у меня на всех 3-х последних собеседованиях спрашивали, ответ про может/не может быть null все считали достаточным
...
Рейтинг: 0 / 0
23.09.2022, 20:59
    #161261
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
PaNik  23.09.2022, 20:57
[игнорируется]
Дед-Папыхтет  23.09.2022, 20:43
[игнорируется]
Холивар поднимаете )))))
у меня на всех 3-х последних собеседованиях спрашивали, ответ про может/не может быть null все считали достаточным
Ну это джунские вопросы - видимо проверка на адекватность
...
Рейтинг: 0 / 0
23.09.2022, 21:01
    #161264
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  23.09.2022, 20:38
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
хотя кстати он наверно дату со временем имел ввиду
А какая разница?
...
Рейтинг: 0 / 0
23.09.2022, 21:02
    #161265
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  23.09.2022, 20:44
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
Вырвано из контекста. В лом объяснять...)
А когда будет не в лом?
Интересно же.
...
Рейтинг: 0 / 0
23.09.2022, 21:02
    #161266
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  23.09.2022, 21:01
[игнорируется]
Doublekey  23.09.2022, 20:38
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
хотя кстати он наверно дату со временем имел ввиду
А какая разница?
date и dateime - две большие разницы в ms sql server
...
Рейтинг: 0 / 0
23.09.2022, 21:02
    #161267
Артефакт
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
приведи вопросы ответы полностью
мну акурат на собеседы на днях
...
Рейтинг: 0 / 0
23.09.2022, 21:03
    #161268
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  23.09.2022, 21:02
[игнорируется]
Дед-Папыхтет  23.09.2022, 20:44
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
Вырвано из контекста. В лом объяснять...)
А когда будет не в лом?
Интересно же.
че в пятницу до человека докопался?
...
Рейтинг: 0 / 0
23.09.2022, 21:06
    #161270
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
PaNik  23.09.2022, 21:02
[игнорируется]
Горбатый ёж  23.09.2022, 21:01
[игнорируется]
Doublekey  23.09.2022, 20:38
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
...
Почему?
хотя кстати он наверно дату со временем имел ввиду
А какая разница?
date и dateime - две большие разницы в ms sql server
Одно число, другое не число?
...
Рейтинг: 0 / 0
23.09.2022, 21:08
    #161273
PaNik
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  23.09.2022, 21:06
[игнорируется]
PaNik  23.09.2022, 21:02
[игнорируется]
Горбатый ёж  23.09.2022, 21:01
[игнорируется]
Doublekey  23.09.2022, 20:38
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
...
хотя кстати он наверно дату со временем имел ввиду
А какая разница?
date и dateime - две большие разницы в ms sql server
Одно число, другое не число?
ты прям ка Хуск, которого в гугле забанили
...
Рейтинг: 0 / 0
23.09.2022, 21:30
    #161294
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  23.09.2022, 21:02
[игнорируется]
Дед-Папыхтет  23.09.2022, 20:44
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
Вырвано из контекста. В лом объяснять...)
А когда будет не в лом?
Интересно же.
Дататайм как правило поле близко к уникальному, но не уникальное с точностью до миллисекунд повторения есть хоть и мало. И например таблица из 2х полей

(Пол некий_enum(м/ж), Дата datetime) есть и прочие типа id identity, name да хоть что но в контексте интересны 2 этих поля

Здесь вопрос - какой индекс лучше
(Пол,Дата) или (Дата,Пол)?
Приведи плюсы минусы и если разрешено создать один из 2х индексов - какой создать?

Ну пол - 2 значения, Дата - дохуя значений почти уникальный но unique не повесить

Подумай
...
Рейтинг: 0 / 0
23.09.2022, 21:33
    #161301
Артефакт
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
по идее дата,пол более селективный , не?
...
Рейтинг: 0 / 0
23.09.2022, 21:39
    #161315
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Какие типовые запросы с этими 2мя полями придумаешь?

SELECT Дата,Пол FROM T WHERE Пол=@p1 and Дата=@d - маловероятен обычно такие даты ищут в диапазонах

SELECT Дата,Пол FROM T WHERE Пол=@p1 and Дата
BETWEEN @d1 AND @d2 - для этого запроса какой индекс?

SELECT Дата,Пол FROM T WHERE Пол=@p1 ORDER BY Дата

SELECT Дата,Пол FROM T WHERE Дата
BETWEEN @d1 AND @d2 ORDER BY Пол
...
Рейтинг: 0 / 0
23.09.2022, 21:40
    #161317
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Артефакт  23.09.2022, 21:33
[игнорируется]
по идее дата,пол более селективный , не?
Если в предиката одно услоаювие без and то конечно то поле в башке индекса, а если предикат конъюктивно составной...?
...
Рейтинг: 0 / 0
23.09.2022, 21:44
    #161324
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
По сильно селективному полю составной индекс где это поле в голове - сильно редко используется...

Это как индекс (id,name) где id-pk... Более чем достаточно просто id
А вот индекс (name,id) часто полезен например (partition by name order by id) или where name=@n order by id desc - поможет.
...
Рейтинг: 0 / 0
23.09.2022, 21:45
    #161325
Артефакт
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Цитата 
[игнорируется]
предикат конъюктивно составной
а если по русски?
...
Рейтинг: 0 / 0
23.09.2022, 21:45
    #161326
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Понятно один или другой индекс - вопрос какие запросы используются. Так это лишь риторика
...
Рейтинг: 0 / 0
23.09.2022, 21:46
    #161329
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Артефакт  23.09.2022, 21:45
[игнорируется]
Цитата 
[игнорируется]
предикат конъюктивно составной
а если по русски?
Bool1 and Bool2 - конъюнкция
Индекс простой из 1 поля, более полей составной
...
Рейтинг: 0 / 0
23.09.2022, 22:59
    #161433
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  23.09.2022, 21:30
[игнорируется]
Здесь вопрос - какой индекс лучше
(Пол,Дата) или (Дата,Пол)?
Приведи плюсы минусы и если разрешено создать один из 2х индексов - какой создать?
Всё зависит от запросов, которые будут чаще использоваться.
Если есть вариант использования в условии отбора одного из полей без второго, то в голову ставить тот, что будет использоваться один.
Только я всё равно не понимаю, почему индекс по полу datetime нежелательно строить.
Тем более, что составной индекс - это отдельная песня, там надо смотреть запросы.
Дед-Папыхтет  23.09.2022, 21:44
[игнорируется]
А вот индекс (name,id) часто полезен например (partition by name order by id)
А вот этот п=вопрос надо провентилировать.
Спасибо за наводку.
...
Рейтинг: 0 / 0
23.09.2022, 23:05
    #161437
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
PaNik  23.09.2022, 21:08
[игнорируется]
Горбатый ёж  23.09.2022, 21:06
[игнорируется]
PaNik  23.09.2022, 21:02
[игнорируется]
Горбатый ёж  23.09.2022, 21:01
[игнорируется]
Doublekey  23.09.2022, 20:38
[игнорируется]
...
А какая разница?
date и dateime - две большие разницы в ms sql server
Одно число, другое не число?
ты прям ка Хуск, которого в гугле забанили
И всё таки какая принципиальная разница между ними с точки зрения построения индекса? Что datetime 8 байт? Это всё?
...
Рейтинг: 0 / 0
23.09.2022, 23:18
    #161450
cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гесты и игнорируемые идут по CSS
Задачи с собеседования для базоёбов.
Дед-Папыхтет  23.09.2022, 19:18
[игнорируется]
Просто Трёп  23.09.2022, 19:16
[игнорируется]
Ок. Праймари кей нужен? Или только юник индекс?
Unique index - тоже самое что primaru key. Если у тебя по другому полю первичный ключ то. Ндекс если одно поле первичный ключ
Не совсем так . В таблице может быть и естественный, и суррогатный уникальные ключи. Кого из них назначить первичным (кластерным) - на усмотрение архитектора. Хотя, конечно, в теории никаких кластерных индексов нет, как нет и суррогатных ключей
...
Рейтинг: 0 / 0
23.09.2022, 23:35
    #161465
cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гесты и игнорируемые идут по CSS
Задачи с собеседования для базоёбов.
Doublekey  23.09.2022, 19:47
[игнорируется]
Просто Трёп  23.09.2022, 19:44
[игнорируется]
Не бейте Папыха! Он нам еще нужен!

В контексте вопроса-то он правильно сказал. В том поле не может быть нуллов и она обязательно уникальна. А вот какой будет план запроса в том и другом случае - тайна велика! Для экспресс эдишна.
мне один человек говорил что индексы по датам так себе идея. но может быть но был неправ
Все зависит от того, какая роль у таблицы. Как правило главные таблицы учета чего-то имеют поля "Дата" и "Номер документа" и еще какие-то, например "название чего-то". В этом случае лучше создавать кластерный индекс по этим полям, так как многие выборки будут содержать дату и/или номер.

А возможно, что чаще будет нужен не "Номер документа", а "название чего-то". Архитектор должен ясно представлять, какие поля будут использоваться в запросе чаще всего,.
Кластерный индекс дает полное покрытие, то есть при запросе по нему выдает все поля записи.
Некластерный индекс, состоящий из одного поля, выдает адрес записи и требуется еще одно действие, что бы прочитать эту запись.
...
Рейтинг: 0 / 0
26.09.2022, 11:49
    #163834
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Есть таблицы t1, t2 и запрос к ним:
Код: SQL
1.
2.
3.
4.
5.
select
   x1.f1 as x1, x2.f1 as x2
from
   (select t1.f1 from t1 where condition_field  = :p_condition_value) x1,
   (select t2.f1 from t2 where condition_field = :p_condition_value) x2
Данные есть либо в одной из таблиц либо в обеих таблицах.
Необходимо чтобы запрос всегда возвращал данные.
Верно ли написан запрос, если нет, то почему и как его исправить?
...
Рейтинг: 0 / 0
26.09.2022, 12:01
    #163848
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  26.09.2022, 11:49
[игнорируется]
Есть таблицы t1, t2 и запрос к ним:
Код: SQL
1.
2.
3.
4.
5.
select
   x1.f1 as x1, x2.f1 as x2
from
   (select t1.f1 from t1 where condition_field  = :p_condition_value) x1,
   (select t2.f1 from t2 where condition_field = :p_condition_value) x2
Данные есть либо в одной из таблиц либо в обеих таблицах.
Необходимо чтобы запрос всегда возвращал данные.
Верно ли написан запрос, если нет, то почему и как его исправить?
Ты зачем добрый человек такие задачки уважаемым людям даешь.
а есть по этому ключу в таблица не одна а несколько строчек? это ж трам там там какой то будет.
кроме того надо уточнить на тему повторяемости данных. которая даже если поправить при таком варианте запроса (то есть джоине)
неизбежна если больше одной строки в одном из датасета.
ну и на будущее если строки в одной и другой таблице идентичны нужны ли обе копии или только одна.
и третье им нужна выборка именно из ЧЕТЫРЕХ колонок?
...
Рейтинг: 0 / 0
26.09.2022, 12:17
    #163862
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  26.09.2022, 12:01
[игнорируется]
а есть по этому ключу в таблица не одна а несколько строчек?
И что?
Про количество строк в задаче ничего не сказано, главное, чтобы всегда возвращались данные.
Doublekey  26.09.2022, 12:01
[игнорируется]
им нужна выборка именно из ЧЕТЫРЕХ колонок?
В данном случае их вообще всего 2, колонки-то.

Но раз ты настаиваешь, пусть строки дублируются, пусть их будет миллиард (очкуешь - ограничь выборку например 100 любыми первыми строками) и колонок может быть нужно даже 800, если они есть в таком количестве в таблицах (замени f1 на *).
...
Рейтинг: 0 / 0
26.09.2022, 12:25
    #163871
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  23.09.2022, 18:31
[игнорируется]
Просто Трёп  23.09.2022, 16:14
[игнорируется]
Код: SQL
1.
i_days
Код: SQL
1.
create unique index ix123 on i_days (dt)
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT i_days.dt, count(1) cnt, sum(calls.duration)/60 d_min
FROM i_days left join calls
  --on calls.dt between i_days.dt and dateadd(day, 1, i_days.dt)
  --on calls.dt >= i_days.dt and calls.dt <= dateadd(day, 1, i_days.dt)
  on calls.dt >= i_days.dt and i_days.dt >= dateadd(day,-1,calls.dt)
where
  calls.incoming = 1 and calls.ext not like '6%' and calls.cd <> 'TR'
  and  i_days.dt between '2017-05-18T00:00:00.000' and '2022-09-23T00:00:00.000'
group by i_days.dt
order by 1
3 условия в ON попробуй с каждым + индекс. Сравни.
О, вариант с больше меньше даже быстрее cte. Спасибо.
...
Рейтинг: 0 / 0
26.09.2022, 14:27
    #164021
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
А как сделать, чтобы в выборку попали строки с null? В этом же запросе.
...
Рейтинг: 0 / 0
26.09.2022, 14:50
    #164071
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
full join не хляет.
...
Рейтинг: 0 / 0
26.09.2022, 14:50
    #164073
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Что, опять union all?
...
Рейтинг: 0 / 0
26.09.2022, 15:09
    #164096
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Может, это как раз тот случай, когда надо использовать Analysis Services?
Всех комбинаций таких условий
Код: SQL
1.
where calls.incoming = 1 and calls.ext not like '6%' and calls.cd <> 'TR'
может быть десятки.
...
Рейтинг: 0 / 0
26.09.2022, 15:17
    #164108
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  26.09.2022, 14:27
[игнорируется]
А как сделать, чтобы в выборку попали строки с null? В этом же запросе.
уточни конкретнее - какое поле нул ))))
добавь or field is null
или может нужно часть условия из where перенести в on (left join).
...
Рейтинг: 0 / 0
26.09.2022, 15:30
    #164126
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  26.09.2022, 15:17
[игнорируется]
Просто Трёп  26.09.2022, 14:27
[игнорируется]
А как сделать, чтобы в выборку попали строки с null? В этом же запросе.
уточни конкретнее - какое поле нул ))))
добавь or field is null
или может нужно часть условия из where перенести в on (left join).
Поля с результатами агрегатных функций. Условие в where я не могу менять, тогда статистика порушится.
Перенести из where в on - жесть, какие тормоза.

Грубо говоря, мне надо, чтобы столбец с днями (первый) был непрерывный.
...
Рейтинг: 0 / 0
26.09.2022, 15:37
    #164142
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Просто Трёп  26.09.2022, 15:30
[игнорируется]
Дед-Папыхтет  26.09.2022, 15:17
[игнорируется]
Просто Трёп  26.09.2022, 14:27
[игнорируется]
А как сделать, чтобы в выборку попали строки с null? В этом же запросе.
уточни конкретнее - какое поле нул ))))
добавь or field is null
или может нужно часть условия из where перенести в on (left join).
Поля с результатами агрегатных функций. Условие в where я не могу менять, тогда статистика порушится.
Перенести из where в on - жесть, какие тормоза.

Грубо говоря, мне надо, чтобы столбец с днями (первый) был непрерывный.
Дед-Папыхтет  23.09.2022, 18:31
[игнорируется]
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT i_days.dt, count(1) cnt, sum(calls.duration)/60 d_min
FROM i_days left join calls
  --on calls.dt between i_days.dt and dateadd(day, 1, i_days.dt)
  --on calls.dt >= i_days.dt and calls.dt <= dateadd(day, 1, i_days.dt)
  on calls.dt >= i_days.dt and i_days.dt >= dateadd(day,-1,calls.dt)
  and calls.incoming = 1 and calls.ext not like '6%' and calls.cd <> 'TR'
where i_days.dt between '2017-05-18T00:00:00.000' and '2022-09-23T00:00:00.000'
group by i_days.dt
order by 1
так?
...
Рейтинг: 0 / 0
26.09.2022, 15:53
    #164157
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Я так попробовал, но не дождался результата.
Если условие упросить, то полторы минуты получилось. И вместо заведомых null (или ноль) выскочили единички. Наверное, можно наделать индексов, чтобы оно нормально заработало, но что делать с фейковыми единицами, непонятно.
...
Рейтинг: 0 / 0
26.09.2022, 16:02
    #164164
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Наверное, проще будет обернуть то, что есть, в cte, а потом еще раз заджойнить с i_days
...
Рейтинг: 0 / 0
26.09.2022, 16:20
    #164182
Просто Трёп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Вот так. По скорости вполне приемлемо.
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with stat as (
SELECT i_days.dt, count(1) cnt, sum(calls.duration)/60 d_min
FROM i_days full join calls on
  calls.dt >= i_days.dt and i_days.dt >= dateadd(day,-1,calls.dt)
where
  calls.incoming = 1 and calls.ext not like '6%' and calls.cd <> 'TR'
group by i_days.dt
)
select d.dt, s.cnt, s.d_min
from i_days d full join stat s on d.dt = s.dt
where d.dt between '2017-05-18T00:00:00.000' and '2022-09-26T00:00:00.000'
order by 1
...
Рейтинг: 0 / 0
26.09.2022, 17:01
    #164246
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  26.09.2022, 12:17
[игнорируется]
Doublekey  26.09.2022, 12:01
[игнорируется]
а есть по этому ключу в таблица не одна а несколько строчек?
И что?
Про количество строк в задаче ничего не сказано, главное, чтобы всегда возвращались данные.
Doublekey  26.09.2022, 12:01
[игнорируется]
им нужна выборка именно из ЧЕТЫРЕХ колонок?
В данном случае их вообще всего 2, колонки-то.

Но раз ты настаиваешь, пусть строки дублируются, пусть их будет миллиард (очкуешь - ограничь выборку например 100 любыми первыми строками) и колонок может быть нужно даже 800, если они есть в таком количестве в таблицах (замени f1 на *).
тогда это не задачка а говно потому что какие то строки это запрос будет всегда возвращать насколько я понимаю но возвращать говно
...
Рейтинг: 0 / 0
26.09.2022, 17:03
    #164249
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  26.09.2022, 12:17
[игнорируется]
Doublekey  26.09.2022, 12:01
[игнорируется]
а есть по этому ключу в таблица не одна а несколько строчек?
И что?
Про количество строк в задаче ничего не сказано, главное, чтобы всегда возвращались данные.
Doublekey  26.09.2022, 12:01
[игнорируется]
им нужна выборка именно из ЧЕТЫРЕХ колонок?
В данном случае их вообще всего 2, колонки-то.

Но раз ты настаиваешь, пусть строки дублируются, пусть их будет миллиард (очкуешь - ограничь выборку например 100 любыми первыми строками) и колонок может быть нужно даже 800, если они есть в таком количестве в таблицах (замени f1 на *).
а ну я сослепу не увидел сорри. я имею ввиду им джоины нужны или юнионов хватит
...
Рейтинг: 0 / 0
26.09.2022, 17:04
    #164250
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
1
...
Изменено: 26.09.2022, 17:06 - Doublekey
Рейтинг: 0 / 0
26.09.2022, 17:22
    #164265
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  26.09.2022, 17:01
[игнорируется]
потому что какие то строки это запрос будет всегда возвращать насколько я понимаю
Я не знаю как в других местах, а вот в оракле есть нюанс
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with
t1 as (select 1 as f1, 1 as condition_field from dual),
t2 as (select 1 as f1, 1 as condition_field from dual
       union all
       select 1 as f1, 2 as condition_field from dual)

select
   x1.f1 as x1, x2.f1 as x2
from
   (select t1.f1 from t1 where condition_field  = 2) x1,
   (select t2.f1 from t2 where condition_field = 2) x2;
...
Рейтинг: 0 / 0
26.09.2022, 17:26
    #164272
Гарыныч
Участник
[игнорирует гостей кроме]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  26.09.2022, 17:22
[игнорируется]
Doublekey  26.09.2022, 17:01
[игнорируется]
потому что какие то строки это запрос будет всегда возвращать насколько я понимаю
Я не знаю как в других местах, а вот в оракле есть нюанс
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with
t1 as (select 1 as f1, 1 as condition_field from dual),
t2 as (select 1 as f1, 1 as condition_field from dual
       union all
       select 1 as f1, 2 as condition_field from dual)

select
   x1.f1 as x1, x2.f1 as x2
from
   (select t1.f1 from t1 where condition_field  = 2) x1,
   (select t2.f1 from t2 where condition_field = 2) x2;
ето ответ?
...
дед-пердед
Рейтинг: 0 / 0
26.09.2022, 17:27
    #164276
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Гарыныч  26.09.2022, 17:26
[игнорируется]
ето ответ?
Это демонстрация.
Тебе зачем?
...
Рейтинг: 0 / 0
26.09.2022, 17:28
    #164279
Гарыныч
Участник
[игнорирует гостей кроме]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  26.09.2022, 17:27
[игнорируется]
Гарыныч  26.09.2022, 17:26
[игнорируется]
ето ответ?
Это демонстрация.
Тебе зачем?
нафсякей :)))
https://otvet.mail.ru/question/216295878
https://qastack.ru/dba/435/how-does-the-oracle-dual-table-work
...
дед-пердед
Изменено: 26.09.2022, 17:32 - Гарыныч
Рейтинг: 0 / 0
26.09.2022, 17:41
    #164303
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Гарыныч  26.09.2022, 17:28
[игнорируется]
Горбатый ёж  26.09.2022, 17:27
[игнорируется]
Гарыныч  26.09.2022, 17:26
[игнорируется]
ето ответ?
Это демонстрация.
Тебе зачем?
нафсякей :)))
https://otvet.mail.ru/question/216295878
https://qastack.ru/dba/435/how-does-the-oracle-dual-table-work
Спасибо, я постараюсь запомнить, рпедварительно тщательно изучив предоставленные тобой материалы.
...
Рейтинг: 0 / 0
26.09.2022, 17:54
    #164317
Гарыныч
Участник
[игнорирует гостей кроме]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  26.09.2022, 17:41
[игнорируется]
Гарыныч  26.09.2022, 17:28
[игнорируется]
Горбатый ёж  26.09.2022, 17:27
[игнорируется]
Гарыныч  26.09.2022, 17:26
[игнорируется]
ето ответ?
Это демонстрация.
Тебе зачем?
нафсякей :)))
https://otvet.mail.ru/question/216295878
https://qastack.ru/dba/435/how-does-the-oracle-dual-table-work
Спасибо, я постараюсь запомнить, рпедварительно тщательно изучив предоставленные тобой материалы.
:)))

зы: нафсякей - это был ответ на твой вопрос...

а тынцы приложил для себя, ипать
...
дед-пердед
Изменено: 26.09.2022, 17:55 - Гарыныч
Рейтинг: 0 / 0
27.09.2022, 17:26
    #165290
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Горбатый ёж  26.09.2022, 17:22
[игнорируется]
Doublekey  26.09.2022, 17:01
[игнорируется]
потому что какие то строки это запрос будет всегда возвращать насколько я понимаю
Я не знаю как в других местах, а вот в оракле есть нюанс
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with
t1 as (select 1 as f1, 1 as condition_field from dual),
t2 as (select 1 as f1, 1 as condition_field from dual
       union all
       select 1 as f1, 2 as condition_field from dual)

select
   x1.f1 as x1, x2.f1 as x2
from
   (select t1.f1 from t1 where condition_field  = 2) x1,
   (select t2.f1 from t2 where condition_field = 2) x2;
Это банальный нюанс NoDataFound

Но ты же писал что
Цитата 
[игнорируется]
Данные есть либо в одной из таблиц либо в обеих таблицах.
или ты имел ввиду что данные ПРОСТО есть а не есть по условию?
...
Рейтинг: 0 / 0
27.09.2022, 17:44
    #165310
Червь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  23.09.2022, 19:47
[игнорируется]
Просто Трёп  23.09.2022, 19:44
[игнорируется]
Не бейте Папыха! Он нам еще нужен!

В контексте вопроса-то он правильно сказал. В том поле не может быть нуллов и она обязательно уникальна. А вот какой будет план запроса в том и другом случае - тайна велика! Для экспресс эдишна.
мне один человек говорил что индексы по датам так себе идея. но может быть но был неправ
Фигня. Всегда есть контекст задачи, который определяет использование индексов, в частности по дате. Теория это как сферический конь в вакууме.
У меня есть табличка на n-миллиардов записей, партифицированная конечно и индекс партифицирован по дате. Без индекса по дате невозможно вообще с такой таблицей работать. А delete вообще песня: часами висит, во много раз быстрее удалить партицию и пересоздать часть индекса.
...
Рейтинг: 0 / 0
27.09.2022, 17:50
    #165317
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  27.09.2022, 17:26
[игнорируется]
Но ты же писал что
Цитата 
[игнорируется]
Данные есть либо в одной из таблиц либо в обеих таблицах.
или ты имел ввиду что данные ПРОСТО есть а не есть по условию?
Переименуй, что данные есть в одном из наборов. Что поменялось?
И при чём здесь nodatafound?
...
Рейтинг: 0 / 0
27.09.2022, 18:30
    #165349
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
1
...
Изменено: 27.09.2022, 18:32 - Doublekey
Рейтинг: 0 / 0
27.09.2022, 18:31
    #165350
Doublekey
Участник
[скрыт]
[заблокирован]
Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
хотя нет, сдаюсь :-) во втором то датасете данные соответствующие условию есть :-)
...
Рейтинг: 0 / 0
27.09.2022, 21:15
    #165470
Горбатый ёж
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Doublekey  27.09.2022, 18:31
[игнорируется]
хотя нет, сдаюсь :-) во втором то датасете данные соответствующие условию есть :-)
В том-то и хер.
...
Рейтинг: 0 / 0
17.01.2023, 13:53
    #274713
Администратор
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Тема была перенесена из форума 'Просто Трёп'.
...
Администратор:
Тема была перенесена из форума 'Просто Трёп'.
Рейтинг: 0 / 0
Период между сообщениями больше года.
24.03.2024, 00:17
    #743547
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр.
Пример

num res
1234 10
9999 36
так можно?
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT num,
       (SELECT SUM(CAST(digit AS INT))
        FROM (
              SELECT SUBSTRING(num, n, 1) AS digit
              FROM (
                    SELECT num, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS n
                    FROM @t
                   ) AS digits
              WHERE digit LIKE '[0-9]'
             ) AS digit_sum
       ) AS res
FROM @t;
...
Рейтинг: 0 / 0
24.03.2024, 00:45
    #743586
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задачи с собеседования для базоёбов.
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
Задача "посчитать и вывести запросом сумму цифр в каждом поле". Уровень ну наверное мидл, хотя если джун будет такие решать еще лучше.

Есть таблица с числами

declare @t table (num numeric(39,0)); или даже строка varchar(max) пох.
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр.
Пример

num res
1234 10
9999 36
упс, вот так если поиграться:
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
-- sqlite

-- Удаление существующей временной таблицы, если она есть
DROP TABLE IF EXISTS t;

-- Создание временной таблицы и заполнение её данными
CREATE TEMP TABLE t (num TEXT);
INSERT INTO t (num) VALUES ('1234'), ('1235'), ('9999');

-- Запрос для вычисления суммы цифр и вывода результата
SELECT num,
       (SELECT SUM(CAST(SUBSTR(num, n, 1) AS INTEGER))
        FROM (
              SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10
             ) AS numbers
        WHERE n <= LENGTH(num) AND SUBSTR(num, n, 1) BETWEEN '0' AND '9'
       ) AS res
FROM t;
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
-- t-sql
-- Создание временной таблицы и заполнение её данными
CREATE TABLE #t (num VARCHAR(MAX));
INSERT INTO #t (num) VALUES ('1234'), ('1235'), ('9999');

-- Запрос для вычисления суммы цифр и вывода результата
WITH Numbers AS (
    SELECT 1 AS n
    UNION ALL
    SELECT n + 1
    FROM Numbers
    WHERE n < 10
)

SELECT t.num,
       SUM(CAST(SUBSTRING(t.num, n, 1) AS INT)) AS res
FROM #t t
JOIN Numbers ON n <= LEN(t.num)
GROUP BY t.num;
...
Рейтинг: 0 / 0
Форумы [новые:4] / SQL [закрыт для гостей] / Задачи с собеседования для базоёбов. / 364 сообщений из 364, показаны все 15 страниц
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Игнорируют тему (1): erbol 
Читали форум (1): Анонимы (1)
Пользователи онлайн (29): Анонимы (13), prostozevs, Tabula Rasa, serg_tmb, Yandex Bot, ElenaG 1 мин., XEugene 1 мин., Bing Bot 2 мин., паразит 2 мин., Дед-Папыхтет 3 мин., anonymous 4 мин., erbol 4 мин., Antonariy 5 мин., pashtetos1 5 мин., Умник-практикующий 8 мин., Просто Трёп 8 мин., Горбатый ёж 8 мин.
x
x
Закрыть


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