powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / SQL [закрыт для гостей] / Задачи с собеседования для базоёбов.
25 сообщений из 364, страница 1 из 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
25 сообщений из 364, страница 1 из 15
Форумы / SQL [закрыт для гостей] / Задачи с собеседования для базоёбов.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Игнорируют тему (1): erbol
Читали форум (2): Анонимы (2)
Пользователи онлайн (41): Анонимы (36), Bing Bot, Yandex Bot 1 мин., Tosh 3 мин., Ветер 4 мин., sergey11 9 мин.
x
x
Закрыть


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