184 похожих чатов

Коллеги, всем привет! У меня вопрос по циклам и динамическому sql. Это

возможно в CH?

Пример:
Мне нужно проитерироваться по списку таблиц и собрать пары имя-количество строк в результирующую таблицу

Можно ли реализовать что-то подобное в КХ?
В постгре я бы сделал это так:

do $$

DECLARE
tbls text[] := ARRAY['tablename1', 'tablename2', 'tablename3'];
tbl_id text; -- счетчик для переборки таблиц

BEGIN

drop table if exists result;
create temp table result
(
tablename text,
rows_qnty int
);

FOREACH tbl_id IN ARRAY tbls
LOOP
EXECUTE format(
'insert into result (tablename, rows_qnty)
select ''%1$s'' as table_id
, count(*)
from database.%1$s',
tbl_id);
END LOOP;

END $$;


Спасибо!

6 ответов

22 просмотра

select database, name, total_rows from system.tables where ...

bash/python/ruby... любой скриптовый язык в помощь, внутри нельзя

Vitalik- Автор вопроса
Danny
select database, name, total_rows from system.tabl...

в реальности все немного сложнее количества строк, конечно же, увы)

Vitalik- Автор вопроса
Konstantin Ilchenko
bash/python/ruby... любой скриптовый язык в помощь...

Понял. Мне просто нужно это все положить в PowerBI, и туда сверху запроса скрипт, насколько я понимаю, особо не прикрутить. Придется делать кучу union'ов

Vitalik
в реальности все немного сложнее количества строк,...

Если непременно нужен цикл, то только каким-то внешним скриптом

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта