powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / SQL [закрыт для гостей] / Задачи с собеседования для базоёбов.
364 сообщений из 364, показаны все 15 страниц
Задачи с собеседования для базоёбов.
    #140514
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну для разминки и срача ))))
Кому то интересно что то решить, кому то просраться ))))
Недеюсь Сириус покажет мастер класс - и базоёбы поймут наконец-то что зря им платят зп ))))

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

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

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

num res
1234 10
9999 36
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140532
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Лезут всякие с зп полляма а сириус тепереь скажет что это задачка фуфло он бы ее за пять иинут сделал
...
Рейтинг: 1 / 0
Нравится: PaNik
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #140598
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр.
Пример

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

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

2. если кто-то задумает эту тупость воплотить в жизнь, то сделают про це дуру
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140603
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
или это просто на знание существования кроссджойна?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #140612
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Redd [игнорируется] 

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

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

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

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

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

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

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

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

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

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

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
В ТЗ было запросом а не функцией ))) и пара решений уже озвучена
Так я запросом и вывел)
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #140635
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  07.09.2022, 16:20
[игнорируется]
А где вы все были в теме про лоховской запрос нуба, то есть меня, по дедофоруму?
Один кот2 разобрался

Господа базоёбы, скок сюды
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140637
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basename  07.09.2022, 16:20
[игнорируется]
А где вы все были в теме про лоховской запрос нуба, то есть меня, по дедофоруму?
Так не круглые сутки же здесь )
Ну и профильные форумы не читаем - нах они? когда есть ПТ
...
Рейтинг: 1 / 0
Нравится: eNose
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #140643
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет  07.09.2022, 16:23
[игнорируется]
basename  07.09.2022, 16:20
[игнорируется]
А где вы все были в теме про лоховской запрос нуба, то есть меня, по дедофоруму?
Так не круглые сутки же здесь )
Ну и профильные форумы не читаем - нах они? когда есть ПТ
Тогда это гавно было в пт
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #140646
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  07.09.2022, 16:16
[игнорируется]
Пулькин  07.09.2022, 16:11
[игнорируется]
Въеби им Сириус базоебам обоссаным [:grin]
да!

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

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

юзай деление и вычитание.
Если уж на то пошло, то
Дед-Папыхтет  07.09.2022, 14:32
[игнорируется]
или даже строка varchar(max) пох.
ЗЫ но тогда проверку надо на число реализовывать
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #140650
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну будет 20 разрядом. Тюю, этож не 100000000 букав
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #140659
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет  07.09.2022, 16:32
[игнорируется]
Или суммировать только цифры, игнорируя прочее
Это требует уточнения в задаче.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140660
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redd  07.09.2022, 16:34
[игнорируется]
Там int на вход идет
Ты задачу-то саму читал?
39 символов в числе - это не int никуя.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140662
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  07.09.2022, 16:36
[игнорируется]
Redd  07.09.2022, 16:34
[игнорируется]
Там int на вход идет
Ты задачу-то саму читал?
39 символов в числе - это не int никуя.
Читал, но может пропустил чото. Главная моя функция чотко работает)
...
Рейтинг: 1 / 0
Нравится: eNose
Задачи с собеседования для базоёбов.
    #140827
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
КГ/АМ
З.Ы. на телефоне нет менеджментстудии
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140838
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140847
Фотография Буся
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140856
Тень на плетень
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Буся  07.09.2022, 18:53
[игнорируется]
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
Вообще то продаются и квадратные. Ливневые - ваще прямоугольные
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140906
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Буся  07.09.2022, 18:53
[игнорируется]
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
Всё равно сритесь!
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #140946
Тень на плетень
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  07.09.2022, 19:54
[игнорируется]
Буся  07.09.2022, 18:53
[игнорируется]
Горбатый ёж  07.09.2022, 18:49
[игнорируется]
Вспомнил.
Как то спросили почему канализационные люки круглые.
Сритесь, коллеги.
ну это же боян, обсуждено давно
Всё равно сритесь!
Уже усрались [:biggrin2]
454_original.jpg
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Нравится: Гарыныч
Задачи с собеседования для базоёбов.
    #140950
Тень на плетень
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все зависит от формы коллектора, дон нах.
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141023
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и у Барсука тоже не одним, а ещё и через временные таблицы
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #141038
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Redd  07.09.2022, 23:53
[игнорируется]
через временные таблицы
И шо?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #141141
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redd  07.09.2022, 23:53
[игнорируется]
Да и у Барсука тоже не одним, а ещё и через временные таблицы
У барсука cte (with) - а mssql это встраиваемый подзапрос без временных таблиц, если ты про это. В других СУБД типа постгрес да cte это сразу временная таблица.

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

А вообще...

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

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

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

А табличная переменная это аналог самой таблицы
Наверное, не ибу чо это, у меня нет мсскл, но все у него там какое-то пиздос)
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141308
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10.3.31-MariaDB
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #141355
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
W  08.09.2022, 12:12
[игнорируется]
хуйня это все
настоящее базоебство начинается на хулиарде конкурирующих транзакций
когда случаются, казалось бы с нихуя, дедлоки и блокировки которых не ждали
особенно это интересно на кластере с репликацией
Ты для начала смоги калькулятор написать[:biggrin2]
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141477
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет [игнорируется] 

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

А нельзя померить отжираемую память запросами в этих ваших мсскул, этож навороченная бд?
можно. но это стоит денег. которые платят базоебам
Иди кластера поднимай, они заждались уже тебя, без тебя нивкуда
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #141488
Пулькин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хуле до Сириуса доебались черти?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141504
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пулькин  08.09.2022, 14:45
[игнорируется]
Хуле до Сириуса доебались черти?
Да все норм, мы тут с Лехой, Барсиком и я задачки решаем. Остальные просто пиздаболы никчемны оказались [:biggrin2]
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141510
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
W  08.09.2022, 14:48
[игнорируется]
Дед-Папыхтет  08.09.2022, 09:13
[игнорируется]
У барсука cte (with) - а mssql это встраиваемый подзапрос без временных таблиц
да нихуя. это та же память, а таблицы-хуицы - похуй
Это память в мсскл 100%. Но в постгрес на курсах да и план запроса показывает, что это временная таблица. Для меня это было открытие и прихуевание что в постгрес иначе
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141516
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Пулькин  08.09.2022, 14:45
[игнорируется]
Хуле до Сириуса доебались черти?
А хуле он пидорасит тут, хуйню несет и зарплатам удивляется.

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

Кто его вообще трогал, прелестит и прелестит какая разница.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #141520
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Redd  08.09.2022, 14:52
[игнорируется]
Пулькин  08.09.2022, 14:45
[игнорируется]
Хуле до Сириуса доебались черти?
Да все норм, мы тут с Лехой, Барсиком и я задачки решаем. Остальные просто пиздаболы никчемны оказались [:biggrin2]
Ну и решайте если больше делать нехуй, я когда устану нихуя не делать может тоже посмотрю
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141526
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  08.09.2022, 15:00
[игнорируется]
Redd  08.09.2022, 14:52
[игнорируется]
Пулькин  08.09.2022, 14:45
[игнорируется]
Хуле до Сириуса доебались черти?
Да все норм, мы тут с Лехой, Барсиком и я задачки решаем. Остальные просто пиздаболы никчемны оказались [:biggrin2]
Ну и решайте если больше делать нехуй, я когда устану нихуя не делать может тоже посмотрю
[:lol], я параллельно все делаю. Прелесть, решаю задачи, слушаю музыку, срусь немного тут. Учись! Загруженный наш суперспец Костик260
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141550
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а по рядомсубжу... крупные конторы с четким разделением доступа заставляют мыслить не юзая спт_валуес и т.п. Есть подобный лайфхак бредовый. Как обойти ограничение в 4гб макс размер БД используя SQL Express Edition? порадовал ответ - вместо пользовательской БД использовать БД мастер ))))
на мастере нет ограничения в 4гб )
...
Рейтинг: 1 / 0
Нравится: Просто Трёп
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141559
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redd  08.09.2022, 15:21
[игнорируется]
Не могу оценить скорости глазами, похоже на Барсуковское, пусть Леха выполнит
Дед-Папыхтет  08.09.2022, 15:19
[игнорируется]
только в мастере есть такая таблица.
лайфхак для некоторых этот спт_валуес, но на проде доступа к мастеру и этой таблицы у разрабов да и приклада нет. для таких задач обычно держат в пользовательской БД табличку с одной колонкой int и миллион или сколько нибудь значений - что бы в селектах джоинить на неё...
Но к задаче текущей по сути тоже самое что и в решении барсука. Барсук просто сделал временную таблицу такую наполнив предварительно, иноз полез в системную таблицу, а так решения принципиально не различаются
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141562
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Это ты спизданул да и рад радешенек, а мне над запросом надо подумать, а мне лень тупо лень. может и подумаю позже

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

А страдание херней это не загрузка это страдание херней, я сейчас часто ей страдаю, потому что нихуя неохота :-)
[:loud2] [:lol]
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #141600
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
можно транслейтом заменить цифры на цифры с плюсом, в конце добавить ноль и выполнить динамический селект вида select 1+2+3+4+0
...
Изменено: 08.09.2022, 16:21 - eNose
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #141605
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  08.09.2022, 16:21
[игнорируется]
можно транслейтом заменить цифры на цифры с плюсом
риплейсом может?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #141611
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Горбатый ёж  08.09.2022, 16:24
[игнорируется]
eNose  08.09.2022, 16:21
[игнорируется]
можно транслейтом заменить цифры на цифры с плюсом
риплейсом может?
да
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142197
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Посмотрел что я написал. 70 процентов барсуковского скрипта.
1 реализовать какую нить последовательность монотонную
2 взять целевую табличку,
3 заджоинить на нее последовательность ограничив количество повторений длиной строки в целевой
4 вывести сабстрингом циферки.
5 сгруппировать и засуммить
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142230
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142234
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Цитата 
[игнорируется]
Нужно запросом вывести эту таблицу и доп поле в которой сумма цифр.
Взял пиффка почитал вашу тему на первой странице сломался.
ПапЫХТед конечно как всегда оригинален. Барсук предусмотрителен.

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

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

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

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

ты же знаешь разрядность числа.
Ээ, не знаю, пришло это) разрываю число и складываю. А как можно еще?
нельзя, потом что ты андроеб и не более того.
доминируешь типа?
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142247
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
PaNik  07.09.2022, 18:45
[игнорируется]
КГ/АМ
З.Ы. на телефоне нет менеджментстудии
Та не Сиря меня опять огорчил. весьма, сразу видно что нихуя не базоеб
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142438
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  08.09.2022, 22:49
[игнорируется]
Посмотрел что я написал. 70 процентов барсуковского скрипта.
1 реализовать какую нить последовательность монотонную
2 взять целевую табличку,
3 заджоинить на нее последовательность ограничив количество повторений длиной строки в целевой
4 вывести сабстрингом циферки.
5 сгруппировать и засуммить
Ну что животное, так и не смог за 1.5 дня ничего высрать путного по теме.. но много напиздел тут. А ещё базаебом себя называешь, 260 какой-то тебе платит! Нее, ты пиздабол, алкаш, 60.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142456
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Redd  09.09.2022, 08:26
[игнорируется]
260 какой-то тебе платит
Прикинь!
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142461
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
мне 270 недавно предлагали - не пошел - привык к удаленке
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142483
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Артефакт  09.09.2022, 09:02
[игнорируется]
мне 270 недавно предлагали - не пошел - привык к удаленке
Меня звали на собсес на 350. Но я уже боюс нах
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142518
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Doublekey  09.09.2022, 10:05
[игнорируется]
Папыхстайл
ну а там немного вариантов решения В ЗАПРОСЕ
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142578
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
eNose  09.09.2022, 10:19
[игнорируется]
Doublekey  09.09.2022, 10:05
[игнорируется]
Папыхстайл
ну а там немного вариантов решения В ЗАПРОСЕ
Ну да. я шо против шоле? У меня Барсикстайл посути. просто лайт вариант и без тотальной защиты.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142595
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  09.09.2022, 11:12
[игнорируется]
Твой вариант это вариант через жопу.
1 переключение контекста это хуево тем более на UDF
2 просили по ТЗ запросом но ты же программист ты так видишь
Это мозги у тебя через жопу.
1. Если можно написать функцию, значит можно и нужно. Код ахуенно читабелен. А вой гавно-гавном.
2. По тз нет ничего, что нельзя функцию. Что нужно чары, нет ничего. Написано или, или и запросом. Все так и решено.
Doublekey  09.09.2022, 11:12
[игнорируется]
Ты не понимаешь зачем эта задача вообще поставлена. формально ты ее решил, но смысла от такого решения в рамках постановки никакой потому что ты долбоклюй.
Да, канешно, реплйсить 10ки раз символы. Это пиздец решение! Уровень архитектора)
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142602
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
Недавно озаботился такой псевдоколонкой. Есть, но с ней не все так просто.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142642
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Redd  09.09.2022, 11:19
[игнорируется]
реплйсить 10ки раз символы. Это пиздец решение!
на самом деле надо тупо смотреть план выполнения и измерить время на реальной туевой хуче данных.

посмотри исходники линуха - там всё сплошь на ифах и готах.
потому что так блеать быстрее и понятней оптимизатору.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142649
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  09.09.2022, 11:47
[игнорируется]
на самом деле надо тупо смотреть план выполнения и измерить время на реальной туевой хуче данных.
Леха и я все уже померили. Места распределились так: номер 1 Леха, номер 2 я, номер 3 Барсук. Леха тестил на строках, я на интах (типа).
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142661
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Просто Трёп  09.09.2022, 11:23
[игнорируется]
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
Недавно озаботился такой псевдоколонкой. Есть, но с ней не все так просто.
не ну я не про row_number() если что
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142665
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Redd  09.09.2022, 11:50
[игнорируется]
eNose  09.09.2022, 11:47
[игнорируется]
на самом деле надо тупо смотреть план выполнения и измерить время на реальной туевой хуче данных.
Леха и я все уже померили. Места распределились так: номер 1 Леха, номер 2 я, номер 3 Барсук. Леха тестил на строках, я на интах (типа).
Так вот у лехи и есть твои самые самые реплейсы.

А у тебя задание с нарушением ТЗ выполнено так каждый реддиот может.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142686
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  09.09.2022, 11:53
[игнорируется]
А у тебя задание с нарушением ТЗ выполнено так каждый реддиот может.
Не тебе пиздаболу решать, как оно сделано. Ты вообще ничего не смог, дно.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142688
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Весёлый топик
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142697
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Doublekey  09.09.2022, 12:02
[игнорируется]
В ТЗ
да уже похуй всем на это долбоебическое ТЗ с такой же долбоебической задачей!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Нужна скорость - делай математикой.
и кстати да он также как и я ебет число сабстрингами, просто не в запросе а в программном цикле потому что он долбоеб,
...
Рейтинг: 1 / 0
Нравится: eNose
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142821
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Чотам наш пиздоклюй работать пошел?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142822
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Doublekey  09.09.2022, 13:24
[игнорируется]
2016 вроде
Applies to: SQL Server 2016 (13.x) and later

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

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

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

некая альтернатива
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #142888
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  09.09.2022, 11:53
[игнорируется]
Просто Трёп  09.09.2022, 11:23
[игнорируется]
Doublekey  08.09.2022, 23:16
[игнорируется]
кстати а в скуль сервере разве нет псевдоколонки которая выводит порядковый номер строки?
Недавно озаботился такой псевдоколонкой. Есть, но с ней не все так просто.
не ну я не про row_number() если что
Так и есть. И я про него.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #142889
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  09.09.2022, 12:09
[игнорируется]
"Есть таблица с числами

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

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

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

кстати нет ограничений на создание процедур и функций
Не, слово "запросом" подразумевает "одним запросом". Если это слово убрать, получится "любым способом".
тогда решение барсука (спижженое в гугле) фтопку
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143010
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  09.09.2022, 15:35
[игнорируется]
неее я не про него в оракле есть обычный rownum без оверов
Я тормаз.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143014
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  09.09.2022, 15:45
[игнорируется]
Но мне этот over не нравится.
Но я запихал его в табличную функцию и забыл про него. Так что, в принципе, с этим можно работать.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143020
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Redd [игнорируется] 

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

Давай следующую задачу на собеседование базоебам
Так ты дирехтор же! с понедельника лучше. Ща уже пятница, конец недели, не до этого)
...
Изменено: 09.09.2022, 16:03 - Redd
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143031
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда мне ту по Прелести подвалило..
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143044
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Redd  09.09.2022, 16:03
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:00
[игнорируется]
Redd [игнорируется] 

Давай следующую задачу на собеседование базоебам
Так ты дирехтор же! с понедельника лучше. Ща уже пятница, конец недели, не до этого)
Попых не директор у него так только должность называется.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143048
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Redd  09.09.2022, 16:03
[игнорируется]
Правда мне ту по Прелести подвалило..
Ну тогда работай иди. а то мало ли что с зп случипццо
...
Рейтинг: 1 / 0
Нравится: PaNik
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143061
9288
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага
Группировка по инварианту -- значение-<номер строки>
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143065
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
10 10
это не диапазон
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143067
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  09.09.2022, 16:17
[игнорируется]
Дед-Папыхтет  09.09.2022, 16:12
[игнорируется]
10 10
это не диапазон
А что это? )))) и как единичное значение выводить в этой задаче? ))))
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143076
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
группировка нужна последовательных чисел
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143129
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного не то, но точка разрыва найдена)
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143139
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Redd  09.09.2022, 16:47
[игнорируется]
Немного не то, но точка разрыва найдена)
ну опять ты сделал все по своем а не как надо :-)
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143299
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
чтобы загнобить кандидата и уломать его на меньшую зряплату вкалывать
реальные задачи больше требуют знание предметной области и структуры конкретной бд
что больше достигается конкретной практикой на конкретной работе
...
Рейтинг: 1 / 0
Нравится: Дед-Папыхтет
Задачи с собеседования для базоёбов.
    #143304
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Я и говорю: ебанутость.

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

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

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

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

с виндой сложнее но там все девайсы лежат стопочкой в реестре
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143314
letrovada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем в природе базоёбы, когда они не могут сделать быстрый пошочатик или придумать YDB.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143317
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
В едиде не сказано что это монитор.

Там есть производитель, модель, частоты, разрешения, серийный номер, размеры и прочая хуйня.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143319
Фотография Буся
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  09.09.2022, 20:04
[игнорируется]
В едиде не сказано что это монитор.

Там есть производитель, модель, частоты, разрешения, серийный номер, размеры и прочая хуйня.
edid только для дисплеев и применяется,зачем там что то указывать если это только для них и сделано?
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143321
Фотография Буся
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так же есть такая штука как enchanced edid
...
хвост есть продолжение кошки
Изменено: 09.09.2022, 20:09 - Буся
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143324
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Буся  09.09.2022, 20:08
[игнорируется]
так же есть такая штука как extended edid
Там нет типа устройства
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143329
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
В едиде есть физические размеры изображения.
Тупой уйобак.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143333
Фотография Буся
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  09.09.2022, 20:14
[игнорируется]
В едиде есть физические размеры изображения.
Тупой уйобак.
твой проектор это матрица с прожектором и линза,сответвенно матрица имеет размеры,и это все прописано в едид
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143335
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Буся  09.09.2022, 20:16
[игнорируется]
eNose  09.09.2022, 20:14
[игнорируется]
В едиде есть физические размеры изображения.
Тупой уйобак.
твой проектор это матрица с прожектором и линза,сответвенно матрица имеет размеры,и это все прописано в едид
Изображения.

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

Можешь сам проверить.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Нравится: Гарыныч
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143341
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Если меня спросят сабжевую хуйню, я просто пошлю нахуй такого работодателя.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143344
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Можно ж честно сказать кандидату по ораклу "если ты не знаешь наизусть кайта, зряплату дели на два"
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143356
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  09.09.2022, 19:55
[игнорируется]
И нахуй эти вопросы нужны?
Мне просто по фану это порешать тут!) На собеседование не собираюсь
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143359
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще на велосипеде ща поеду[:biggrin]
IMG_20220909_203122.jpg
...
Рейтинг: 1 / 0
Нравится: Мару
Задачи с собеседования для базоёбов.
    #143368
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Redd  09.09.2022, 20:32
[игнорируется]
Я вообще на велосипеде ща поеду[:biggrin]
IMG_20220909_203122.jpg
На встречку не выезжай!
...
Рейтинг: 3 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143391
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Артефакт  09.09.2022, 19:48
[игнорируется]
чтобы загнобить кандидата и уломать его на меньшую зряплату вкалывать
реальные задачи больше требуют знание предметной области и структуры конкретной бд
что больше достигается конкретной практикой на конкретной работе
загнобить да но зарплату понизить нет, мне никто не предлагал меньше, мне просто говорил нет.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143434
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бля, коньяк внезапно кончился. А до скольки спиртное продают?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143435
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папых со своими задачами лишил меня коньяка!
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143437
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
у тебя есть еще 8 минут
...
Рейтинг: 1 / 0
Задачи с собеседования для базоёбов.
    #143439
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, не успеваю.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143441
Тень на плетень
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лунная скиталица  09.09.2022, 22:55
[игнорируется]
Артефакт  09.09.2022, 22:52
[игнорируется]
у тебя есть еще 8 минут
У меня муж за пивом так бывает гоняет. Я давай, еще 8 мин! Он чешет и такой без двух минут смотрю пробивает)) народ, говорит, пропускает если че, понимают типа беги,беги к кассе, без очереди даже))
Так есть же нелегальние алкашные ларьки. )
...
Кто в предыдущие годы набил карманы за счет всяких "процессов" в экономике 90-х годов, они точно не элита, а кусок говна.
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143443
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
пиво бывает очень нужно с утра
а приходится ждать 10ти
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143455
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня сейчас другая задачка, похожая на №2.
Есть таблица с datetime, известна периодичность данных, например, 4 секунды плюс-минус 0.1 секунды. Надо найти записи, между которыми период больше заданного и вставить туда строку. А курсоры не хочу юзать. Или тут без курсора никак?
...
Изменено: 09.09.2022, 23:11 - Просто Трёп
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Нравится: Просто Трёп
Задачи с собеседования для базоёбов.
    #143462
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет [игнорируется] 

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

Ну что базаебище!, теперь мой выход[:biggrin2]
IMG_20220909_232844.jpg
Я тоже винишко пью сухое
P_20220909_233912.jpg
...
Рейтинг: 1 / 0
Нравится: Redd
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143475
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
о сколько нам открытий чудных
готовит просвещенья дух
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143490
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Redd  09.09.2022, 23:30
[игнорируется]
Дед-Папыхтет [игнорируется] 

Ну что базаебище!, теперь мой выход[:biggrin2]
IMG_20220909_232844.jpg
понедельник выходной?
...
Рейтинг: 1 / 0
Нравится: PaNik
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143500
Redd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  10.09.2022, 01:21
[игнорируется]
Redd  09.09.2022, 23:30
[игнорируется]
Дед-Папыхтет [игнорируется] 

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

Аналитику с примерами на бумажке просят 9 из 10
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #143702
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Здесь я прусь традиционно от ПапЫХТЕда
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #143778
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Doublekey  10.09.2022, 12:10
[игнорируется]
9288  10.09.2022, 10:35
[игнорируется]
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
Лаги лиды надо знать а еще надо знать что у него три параметра на сама деле а не один. Мне весной дали 12 что ли задачек. Я на 6-ой устал сломался.
Это был ГПБ и я намертво забыл синтаксис партишин бая. Клин случилсо. Ну и согласились что надо кончать.

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

Расстрелять.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #160818
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поудалял индексы с таблицы интервалов, время выполнения уменьшилось с 9 секунд до 3. Чудеса.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #160845
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  23.09.2022, 14:58
[игнорируется]
сделал ее вообще в отдельной базе. Ну и когда заджойнил ее с рабочей таблицей, выполнение получилось 9 секунд. Хотя с cte были доли секунды.
Так это...
Как его...
Я не думаю, что принципиально работа с удалённой БД отличается в оракле и мс скуле, доступ по линку всегда медленный.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #160849
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  23.09.2022, 15:04
[игнорируется]
Поудалял индексы с таблицы интервалов, время выполнения уменьшилось с 9 секунд до 3. Чудеса.
Потому что быстрее закачать всю таблицу видимо.
В оракле есть хинт DRIVING_SITE, он может заставить отработать запрос на стороне удалённой БД, но из-за сетевых задержек всё равно может быть медленнее, чем с таблицей в самой БД.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #160861
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я int столбец добавил, потому что подумал, что по нему группировку лучше будет делать. Теперь понимаю, что он лишний. По дате группировка такая же будет.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #160907
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал в этой же бд, не помогло. Назначил единственный столбец Prmairy Key, ничего не изменилось.
В общем, идентичный код, с cte - доли секунды, с существующей таблицей - 3-4 секунды.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #161129
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок. Праймари кей нужен? Или только юник индекс?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161131
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  23.09.2022, 19:16
[игнорируется]
Ок. Праймари кей нужен? Или только юник индекс?
Unique index - тоже самое что primaru key. Если у тебя по другому полю первичный ключ то. Ндекс если одно поле первичный ключ
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161134
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Дед-Папыхтет  23.09.2022, 19:18
[игнорируется]
Unique index - тоже самое что primaru key.
Да? В primary key может быть null? Ой!
...
Рейтинг: 0 / 1
Не нравится: Vaska Balboa
Задачи с собеседования для базоёбов.
    #161160
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
Дед-Папыхтет  23.09.2022, 19:18
[игнорируется]
Просто Трёп  23.09.2022, 19:16
[игнорируется]
Ок. Праймари кей нужен? Или только юник индекс?
Unique index - тоже самое что primaru key. Если у тебя по другому полю первичный ключ то. Ндекс если одно поле первичный ключ
Попых ты что пьешь что ли уже?

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

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

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

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

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

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

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

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

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

Table(id int not null)

Равнозначно

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

Понятно сущности названия разные но в остальном эквивалент
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161241
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
Вырвано из контекста. В лом объяснять...)
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161257
PaNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей]
[не активирован]
[неодобрен]
Дед-Папыхтет  23.09.2022, 20:43
[игнорируется]
Холивар поднимаете )))))
у меня на всех 3-х последних собеседованиях спрашивали, ответ про может/не может быть null все считали достаточным
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161261
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaNik  23.09.2022, 20:57
[игнорируется]
Дед-Папыхтет  23.09.2022, 20:43
[игнорируется]
Холивар поднимаете )))))
у меня на всех 3-х последних собеседованиях спрашивали, ответ про может/не может быть null все считали достаточным
Ну это джунские вопросы - видимо проверка на адекватность
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161264
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  23.09.2022, 20:38
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
хотя кстати он наверно дату со временем имел ввиду
А какая разница?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161265
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет  23.09.2022, 20:44
[игнорируется]
Горбатый ёж  23.09.2022, 20:17
[игнорируется]
Doublekey  23.09.2022, 19:47
[игнорируется]
мне один человек говорил что индексы по датам так себе идея.
Почему?
Вырвано из контекста. В лом объяснять...)
А когда будет не в лом?
Интересно же.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #161267
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
приведи вопросы ответы полностью
мну акурат на собеседы на днях
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #161301
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
по идее дата,пол более селективный , не?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #161317
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артефакт  23.09.2022, 21:33
[игнорируется]
по идее дата,пол более селективный , не?
Если в предиката одно услоаювие без and то конечно то поле в башке индекса, а если предикат конъюктивно составной...?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161324
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сильно селективному полю составной индекс где это поле в голове - сильно редко используется...

Это как индекс (id,name) где id-pk... Более чем достаточно просто id
А вот индекс (name,id) часто полезен например (partition by name order by id) или where name=@n order by id desc - поможет.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161325
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Цитата 
[игнорируется]
предикат конъюктивно составной
а если по русски?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161326
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно один или другой индекс - вопрос какие запросы используются. Так это лишь риторика
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161329
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артефакт  23.09.2022, 21:45
[игнорируется]
Цитата 
[игнорируется]
предикат конъюктивно составной
а если по русски?
Bool1 and Bool2 - конъюнкция
Индекс простой из 1 поля, более полей составной
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161433
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дед-Папыхтет  23.09.2022, 21:30
[игнорируется]
Здесь вопрос - какой индекс лучше
(Пол,Дата) или (Дата,Пол)?
Приведи плюсы минусы и если разрешено создать один из 2х индексов - какой создать?
Всё зависит от запросов, которые будут чаще использоваться.
Если есть вариант использования в условии отбора одного из полей без второго, то в голову ставить тот, что будет использоваться один.
Только я всё равно не понимаю, почему индекс по полу datetime нежелательно строить.
Тем более, что составной индекс - это отдельная песня, там надо смотреть запросы.
Дед-Папыхтет  23.09.2022, 21:44
[игнорируется]
А вот индекс (name,id) часто полезен например (partition by name order by id)
А вот этот п=вопрос надо провентилировать.
Спасибо за наводку.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #161450
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гесты и игнорируемые идут по CSS
Дед-Папыхтет  23.09.2022, 19:18
[игнорируется]
Просто Трёп  23.09.2022, 19:16
[игнорируется]
Ок. Праймари кей нужен? Или только юник индекс?
Unique index - тоже самое что primaru key. Если у тебя по другому полю первичный ключ то. Ндекс если одно поле первичный ключ
Не совсем так . В таблице может быть и естественный, и суррогатный уникальные ключи. Кого из них назначить первичным (кластерным) - на усмотрение архитектора. Хотя, конечно, в теории никаких кластерных индексов нет, как нет и суррогатных ключей
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #161465
cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гесты и игнорируемые идут по CSS
Doublekey  23.09.2022, 19:47
[игнорируется]
Просто Трёп  23.09.2022, 19:44
[игнорируется]
Не бейте Папыха! Он нам еще нужен!

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

А возможно, что чаще будет нужен не "Номер документа", а "название чего-то". Архитектор должен ясно представлять, какие поля будут использоваться в запросе чаще всего,.
Кластерный индекс дает полное покрытие, то есть при запросе по нему выдает все поля записи.
Некластерный индекс, состоящий из одного поля, выдает адрес записи и требуется еще одно действие, что бы прочитать эту запись.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #163862
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  26.09.2022, 12:01
[игнорируется]
а есть по этому ключу в таблица не одна а несколько строчек?
И что?
Про количество строк в задаче ничего не сказано, главное, чтобы всегда возвращались данные.
Doublekey  26.09.2022, 12:01
[игнорируется]
им нужна выборка именно из ЧЕТЫРЕХ колонок?
В данном случае их вообще всего 2, колонки-то.

Но раз ты настаиваешь, пусть строки дублируются, пусть их будет миллиард (очкуешь - ограничь выборку например 100 любыми первыми строками) и колонок может быть нужно даже 800, если они есть в таком количестве в таблицах (замени f1 на *).
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #164021
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как сделать, чтобы в выборку попали строки с null? В этом же запросе.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #164071
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
full join не хляет.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #164073
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что, опять union all?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #164096
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, это как раз тот случай, когда надо использовать Analysis Services?
Всех комбинаций таких условий
Код: SQL
1.
where calls.incoming = 1 and calls.ext not like '6%' and calls.cd <> 'TR'
может быть десятки.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #164108
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  26.09.2022, 14:27
[игнорируется]
А как сделать, чтобы в выборку попали строки с null? В этом же запросе.
уточни конкретнее - какое поле нул ))))
добавь or field is null
или может нужно часть условия из where перенести в on (left join).
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #164157
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так попробовал, но не дождался результата.
Если условие упросить, то полторы минуты получилось. И вместо заведомых null (или ноль) выскочили единички. Наверное, можно наделать индексов, чтобы оно нормально заработало, но что делать с фейковыми единицами, непонятно.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #164164
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, проще будет обернуть то, что есть, в cte, а потом еще раз заджойнить с i_days
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #164250
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
1
...
Изменено: 26.09.2022, 17:06 - Doublekey
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #164276
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гарыныч  26.09.2022, 17:26
[игнорируется]
ето ответ?
Это демонстрация.
Тебе зачем?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #165310
Червь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  23.09.2022, 19:47
[игнорируется]
Просто Трёп  23.09.2022, 19:44
[игнорируется]
Не бейте Папыха! Он нам еще нужен!

В контексте вопроса-то он правильно сказал. В том поле не может быть нуллов и она обязательно уникальна. А вот какой будет план запроса в том и другом случае - тайна велика! Для экспресс эдишна.
мне один человек говорил что индексы по датам так себе идея. но может быть но был неправ
Фигня. Всегда есть контекст задачи, который определяет использование индексов, в частности по дате. Теория это как сферический конь в вакууме.
У меня есть табличка на n-миллиардов записей, партифицированная конечно и индекс партифицирован по дате. Без индекса по дате невозможно вообще с такой таблицей работать. А delete вообще песня: часами висит, во много раз быстрее удалить партицию и пересоздать часть индекса.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #165317
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  27.09.2022, 17:26
[игнорируется]
Но ты же писал что
Цитата 
[игнорируется]
Данные есть либо в одной из таблиц либо в обеих таблицах.
или ты имел ввиду что данные ПРОСТО есть а не есть по условию?
Переименуй, что данные есть в одном из наборов. Что поменялось?
И при чём здесь nodatafound?
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #165349
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
1
...
Изменено: 27.09.2022, 18:32 - Doublekey
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #165350
Doublekey
Поместить в игнор-лист Сообщения автора в теме
Участник
[скрыт]
[заблокирован]
хотя нет, сдаюсь :-) во втором то датасете данные соответствующие условию есть :-)
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #165470
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Doublekey  27.09.2022, 18:31
[игнорируется]
хотя нет, сдаюсь :-) во втором то датасете данные соответствующие условию есть :-)
В том-то и хер.
...
Рейтинг: 0 / 0
Задачи с собеседования для базоёбов.
    #274713
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Тема была перенесена из форума 'Просто Трёп'.
...
Администратор:
Тема была перенесена из форума 'Просто Трёп'.
Рейтинг: 0 / 0
Период между сообщениями больше года.
Задачи с собеседования для базоёбов.
    #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
Задачи с собеседования для базоёбов.
    #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
364 сообщений из 364, показаны все 15 страниц
Форумы / SQL [закрыт для гостей] / Задачи с собеседования для базоёбов.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Игнорируют тему (1): erbol
Читали форум (1): Анонимы (1)
Пользователи онлайн (18): Анонимы (11), serpstatbot bot, Умник-практикующий 1 мин., Bing Bot 1 мин., жЫвоглот 1 мин., Yandex Bot 1 мин., pashtetos1 2 мин., NSFuimus 3 мин.
x
x
Закрыть


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