Size: a a a

DBA - русскоговорящее сообщество

2021 April 30

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Если бы в num мне нужен был массив, тогда согласен - это бессмысленно.
Но мне на каждый диапазон, нужно число, на которое вернулся этот диапазон.
И вообще это абстракция, на самом деле там не числа, а объекты, содержащие в одном из полей IP адрес (числа). Поэтому локально проверять вхождение адреса в диапазон уже не так быстро, как было ббы при числах. Поэтому и пытаюсь сделать все в базе
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
clickhouse. Запрос по http интерфейсу
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Ну этих чисел МНОГО. Не одно.
Ты это понимаешь?
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Я понимаю, что их много))
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Но я не понимаю, что до меня хотите донести)
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Я хочу до тебя донести, что ты сам не знаешь чего хочешь.
Формулируй вопрос как следует, опиши, что тебе надо. НЕПРОТИВОРЕЧИВО опиши.
Тогда может тебе помогут.
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Так в чем противоречие моего вопроса?)
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
В том, что ты описал, что хочешь вернуть скаляр в поле NUM, а по логике твоего же запроса там подразумевается вектор.
Ты хочешь ОДНО значение, а их должно быть МНОГО.
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Может быть будет понятней, если я скажу, что плохо разбираюсь в SQL, и запрос который я написал это мое ПЛОХОЕ  представление, как должно выглядеть. Ориентироваться надо на то, что я написал в ожидаемом результате
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Может быть надо запросс ВООБЩе по другому сделать, я хз. ПОэтому и попросил помочь
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Напиши без SQL что тебе нужно...
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Есть таблица, в которой хранятся записи вида (абстрактно)
start_n, end_n

Есть массив чисел  (абстрактно)
Мне нужно для каждого числа вернуть диапазоны из таблицы, в которые они входят. Результат будет такой
```
[
{
  start_n: 1,
  end_n: 3,
},
{
  start_n: 2,
  end_n: 5,
 },
...
]

А теперь, чтобы НАМНОГО уменьшить ресурсоемкость и упростить логику работы моего кода, я хочу в каждый из диапазонов, которые мне вернутся вставить число, на которое он вернулся:

[
{
  start_n: 1,
  end_n: 3,
  num: 2
},
{
  start_n: 2,
  end_n: 5,
  num :2
 },
...
]
```
источник

У

Уруруборос Иванович... in DBA - русскоговорящее сообщество
Ну дак 2 таблицы.
Одна с числами, вторая с диапазонами
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
то есть тебе нужно полное декартово произведение диапазонов и чисел входящих в них.

Это ТЕМ запросом, что ты написал, никогда не сделать. Невозможно.
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
по хорошему с базой бы вообще ничего не делать)
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Я ж сказал, что мой запрос - это уровень моих знаний sql)
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Тебе надо две таблицы делать, и JOIN ить их по условию "вхождение числа в диапазон".
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Без 2й таблицы никак? БД трогать очень не желаткельно
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Вторая таблица может быть временной.

Можно сделать через WITH , но Кликхауз — убогая в смысле развитого SQL СУБД, не знаю, как там с этим делом....
источник

D4

Dec 4287259487828694... in DBA - русскоговорящее сообщество
Ладно, спасибо за ответы! Надеюсь разберусь)
источник