powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / SQL [закрыт для гостей] / Задачи с собеседования для базоёбов., Поиск: Искать сообщения, созданные автором: Doublekey  
25 сообщений из 83, страница 3 из 4
SQL / Задачи с собеседования для базоёбов.
    #143048
Doublekey
Поместить в игнор-лист
Участник
[скрыт]
[заблокирован]
Redd  09.09.2022, 16:03
[игнорируется]
Правда мне ту по Прелести подвалило..
Ну тогда работай иди. а то мало ли что с зп случипццо
...
Рейтинг: 1 / 0
Нравится: PaNik
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #143139
Doublekey
Поместить в игнор-лист
Участник
[скрыт]
[заблокирован]
Redd  09.09.2022, 16:47
[игнорируется]
Немного не то, но точка разрыва найдена)
ну опять ты сделал все по своем а не как надо :-)
...
Рейтинг: 0 / 0
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #143391
Doublekey
Поместить в игнор-лист
Участник
[скрыт]
[заблокирован]
Артефакт  09.09.2022, 19:48
[игнорируется]
чтобы загнобить кандидата и уломать его на меньшую зряплату вкалывать
реальные задачи больше требуют знание предметной области и структуры конкретной бд
что больше достигается конкретной практикой на конкретной работе
загнобить да но зарплату понизить нет, мне никто не предлагал меньше, мне просто говорил нет.
...
Рейтинг: 0 / 0
SQL / Задачи с собеседования для базоёбов.
    #143490
Doublekey
Поместить в игнор-лист
Участник
[скрыт]
[заблокирован]
Redd  09.09.2022, 23:30
[игнорируется]
Дед-Папыхтет [игнорируется] 

Ну что базаебище!, теперь мой выход[:biggrin2]
IMG_20220909_232844.jpg
понедельник выходной?
...
Рейтинг: 1 / 0
Нравится: PaNik
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #143691
Doublekey
Поместить в игнор-лист
Участник
[скрыт]
[заблокирован]
Redd  10.09.2022, 11:15
[игнорируется]
9288  10.09.2022, 10:35
[игнорируется]
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
Все не могу запомнить и в режиме писать на бумаге, это анриал. Рассказать тока смог бы. Ну мысль и немного накорябать..
Яваскрипт, пхп, Ява, котлин, скл и около, все это гавно держать в башке анриал, все перемешалось уже [:biggrin2]
"Поэтому саша и не женицуо" огм
...
Рейтинг: 0 / 0
SQL / Задачи с собеседования для базоёбов.
    #143694
Doublekey
Поместить в игнор-лист
Участник
[скрыт]
[заблокирован]
9288  10.09.2022, 10:35
[игнорируется]
Если речь про собеседование и одного упоминания про аналитику и предыдущее/следующее значения (не помню точный синтаксис), недостаточно, то есть смысл подумать о вменяемости интервьюеров
А на работе без доступа к интернету как-то совсем грустно... Сразу в топку
Лаги лиды надо знать а еще надо знать что у него три параметра на сама деле а не один. Мне весной дали 12 что ли задачек. Я на 6-ой устал сломался.
Это был ГПБ и я намертво забыл синтаксис партишин бая. Клин случилсо. Ну и согласились что надо кончать.

Аналитику с примерами на бумажке просят 9 из 10
...
Рейтинг: 0 / 0
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #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
SQL / Задачи с собеседования для базоёбов.
    #143702
Doublekey
Поместить в игнор-лист
Участник
[скрыт]
[заблокирован]
Здесь я прусь традиционно от ПапЫХТЕда
...
Рейтинг: 0 / 0
SQL / Задачи с собеседования для базоёбов.
    #161160
Doublekey
Поместить в игнор-лист
Участник
[скрыт]
[заблокирован]
Дед-Папыхтет  23.09.2022, 19:18
[игнорируется]
Просто Трёп  23.09.2022, 19:16
[игнорируется]
Ок. Праймари кей нужен? Или только юник индекс?
Unique index - тоже самое что primaru key. Если у тебя по другому полю первичный ключ то. Ндекс если одно поле первичный ключ
Попых ты что пьешь что ли уже?

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

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

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

я тут видел таблицу с первичными ключами на колонках типа char(4) плакал
...
Рейтинг: 0 / 0
25 сообщений из 83, страница 3 из 4
Форумы / SQL [закрыт для гостей] / Задачи с собеседования для базоёбов., Поиск: Искать сообщения, созданные автором: Doublekey  
Читали тему (3): Анонимы (2), Bing Bot 9 мин.
Игнорируют тему (1): erbol
Читали форум (3): Анонимы (2), Bing Bot 9 мин.
Пользователи онлайн (46): Анонимы (33), Ветер, Брюквенные годы, Сталкер, Yandex Bot 1 мин., Bing Bot 2 мин., Biene Maja 4 мин., Разум вселенной 4 мин., битый 4 мин., bk0010 6 мин., prostozevs 7 мин., Буся 8 мин., Гарыныч 8 мин., sergey11 9 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


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