• Как правильно написать sql запрос агрегации для фасетного фильтра?

    @Akina
    Создал базу данных следующей структуры

    Ну кривая же структура, ёлки-палки...

    Что за таблица attr_options? в чём её смысл? Если по схеме - скорее всего, она формирует возможные пары... но ничто не мешает в таблице property иметь невозможную пару. А если на неё возлагается какой-то иной смысл, то скорее всего она вообще не нужна.
    Написано
  • Почему запрос выходит за пределы рекурсии?

    @Akina
    Ну прям какое-то "у меня в подполе происходит стук"... вы правда думаете, что вот так, без исходного кода и вменяемого примера мы можем сказать что-то определённое?

    если его вставить в процедуру или функцию он начинает выходить за пределы 100 рекурсий

    Ну так. во-первых, ограничьте глубину рекурсии принудительно, во-вторых, добавьте в текст функции вывод в отдельную таблицу реперных значений, позволяющих понять, что дала очередная итерация и почему потребовалась следующая - и проанализируйте их при запуске отдельно и в процедуре при тех же исходных данных.
    Написано
  • Как объеденить данные с двух запросов между собой, если их ничего не объеденяет?

    @Akina
    uRoot,
    Ну то есть, этому order_id соответствует именно этой transfer_id в другой базе.

    С учётом написанного - без шансов.

    Вот есть телефон в таблице 1, ему соответствует две записи с таким телефоном в таблице 2... ну и какой выбрать? критериев нет - соответственно выбрать невозможно.

    я должен получить уникальную связку order_id и transfer_id.

    В описанных выше условиях ты получишь две записи, которые связывают запись из таблицы 1 с первой и второй записями из таблицы 2 соответственно. А вот решать, нужно ли оставить обе, или дропнуть одну из них. придётся исключительно вручную. Интуиция пока что не программируется.

    Я бы всё же получил такие всевозможные пары, для которых требуемое соответствие известно - для нескольких телефонов,- и внимательно их рассмотрел. Возможно, и правда, как описывает Aetae, найдутся какие-то вторичные зависимости, которые позволят детектировать связь - уверенно, либо хотя бы с определённой долей вероятности.

    В первом запросе есть уникальный order_id, во втором transit_id.

    Например, можно поделить заказы на группы по источнику/инициатору заказа, и получить статистику по используемым для данного источника телефонам. Выделить телефоны, принадлежащие ТОЛЬКО этому источнику. В результате такого мероприятия часть записей получит однозначное соответствие, и массив обрабатываемых данных сократится. Аналогичную операцию можно проделать и с обратной стороной, с пересылками. Более того, можно попробовать установить связь между источником заказа и источником пересылки. В общем, по мере таких анализа и обработки массив необработанных (вернее, не нашедших однозначного соответствия) данных будет уменьшаться, что упрощает дальнейшую обработку. Ну и надо понимать, что шанс разобрать вообще всё - невелик. Возможны хитровывернутые коллизии - ну типа некий номер телефона может запросто сменить владельца.
    Написано
  • Как объеденить данные с двух запросов между собой, если их ничего не объеденяет?

    @Akina
    телефоны не уникальные

    Да наплевать! сам же пишешь:

    Делаю запрос в другую базу используя телефоны с п.2

    Вот то же самое и делай - связь по номеру телефона. Получишь все возможные пары. А что с ними делать дальше - думай. Каких-то критериев для выбора одной пары из нескольких ты ж не приводишь (если они вообще есть).

    используется Knex.JS, но смысл запроса, я думаю, понятен

    Ну вообще-то не очень... а если вдуматься, так и вовсе через одно место - связь-то развалена!
    Написано
  • С чем связана ошибка kaspersky security center при установке на debian?

    @Akina
    alexx11, покажите ТОЧНО вот ту самую строку из файла, которая даёт необходимый доступ к БД dev-ksc.
    Написано
  • С чем связана ошибка kaspersky security center при установке на debian?

    @Akina
    alexx11,
    В данном файле всё корректно настроено.

    Точно в файле есть строка (с точностью до имени БД и метода аутентификации)
    host postgres dev-ksc 10.3.76.12/32 md5
    и она не маскируется никакой предыдущей строкой?
    Написано
  • Как удалить папку Linux из проводника Windows 11?

    @Akina
    А если по ссылке топнуть правым батоном - нет ли там пункта типа "Удалить из панели быстрого вызова"?
    Написано
  • Как правильно создать триггер?

    @Akina
    Константин Цветков, у MySQL (а именно таким тегом помечен вопрос) глаза выскочат, если он это увидит...

    Error number: 3763; Symbol: ER_GENERATED_COLUMN_NAMED_FUNCTION_IS_NOT_ALLOWED; SQLSTATE: HY000
    Message: Expression of generated column '%s' contains a disallowed function: %s.
    Написано
  • Как правильно создать триггер?

    @Akina
    В коде (но не в описании) есть NOW()... при его наличии возможность использовать вычисляемое поле отпадает сама собой.
    Написано
  • Как правильно создать триггер?

    @Akina
    Мне нужно сделать так что если дата создания `created` меньше за дату старта `start_date` то статус был 0, если наступила дата старта `start_date` и текущая дата меньше или равна дате окончания `end_date` то статус был 1, а если текущая дата больше за дату окончания `end_date` то статус был 2.

    Переведите, пожалуйста, это малопонятное нечто на русский язык.
    А заодно поясните, как оно связано с представленными кодами. Особенно интересует наличие в коде текущего штампа времени NOW(), о котором в описании нет ни полслова.
    Написано
  • Как в PhpMyAdmin посмотреть историю изменения названия полей таблицы?

    @Akina
    Вот каждый раз, когда подобный вопрос вижу, хочется спросить навстречу - а оно нахрена? на что оно вот может повлиять, что когда-то поле называлось иначе?
    И вообще интересно, что побуждает переименовывать поля - настолько плохо выполненный анализ? что, поле сперва назвали непоймикак?
    Написано
  • Как в where выполнить подзапрос?

    @Akina
    uRoot,
    Ну потому как это самый распространённый способ выполнить отбор по результатам подзапроса, и в большинстве случаев ещё и самый оптимальный.

    Второй по распространённости - подзапрос во FROM. Обычный или латеральный.

    Ну а WHERE IN - единственным его достоинством можно назвать разве что сравнительную простоту для понимания, по всем остальным параметрам он проигрывает. Более того, современные оптимизаторы достаточно умны, чтобы преобразовать этот вариант в один из первых двух. Это видно на плане выполнения запроса - он совпадает с планом для одного из двух первых типов (а порой и все три дают один план), причём чисто по порядку выполнения операций план соответствует синтаксису именно одного из первой пары типов.

    Что же до самого термина "вульгарный" - в данном случае он используется в значении "наиболее простой".
    Написано
  • Как в where выполнить подзапрос?

    @Akina
    Начните с публикации запроса полностью. Причём как в формате фреймворка, так и на чистом SQL. И не забудьте добавить также CREATE TABLE использованных таблиц.

    Ещё лучше - описывайте задачу, а не свои попытки её решить. Ведь выбранный путь может оказаться не лучшим, и даже не самым правильным...

    Мне order_tags все равно нужен только для проверки в where, нет смысла его возвращать в select.

    А как он вообще оказался в SELECT? И зачем он во WHERE? Переместить его во FROM, или добавив связующие поля, или JOIN LATERAL. А вообще по смыслу происходящего (который в общем-то хрен поймёшь) скорее всего тут нужен будет вульгарный WHERE EXISTS.
    Написано
  • Почему у черной дыры есть электрический заряд?

    @Akina
    orfelin, вы говорите так, словно в момент коллапса сей горизонт возникает из ничего и сразу как сфера с некими геометрическими (для внешнего наблюдателя) размерами. Тогда как мне представляется, что сначала возникает безразмерная точка, которая разворачивается в сферу. И с точки зрения внешнего наблюдателя абсолютно всё вещество коллапсировавшего объекта всё ещё падает внутрь этого объекта. И даже всё ещё находится вне его. И мне непонятно, как это что-то оказывается ПОД (точнее, внутри) этим горизонтом.
    Написано
  • Как определить тяжелые запросы?

    @Akina
    log_min_duration_statement в полсекунды

    А что так мало? логаться будет слишком много. Я понимаю, если бы у автора шёл большой поток мелких запросов, тормозящих именно из-за массовости... впрочем, в таком случае я бы пинал клиентский код.
    Написано
  • Почему у черной дыры есть электрический заряд?

    @Akina
    orfelin,
    Хорошо, как быть в случае если коллапсирует уже электрически заряженная звезда?

    А чем собственно отличаются изначально заряженная коллапсировавшая звезда (вернее, её вещество, ещё вернее - заряженные частицы в её веществе) и подошедший к шапочному разбору электрон? Они всё также падают в чёрную дыру, вот только вещество коллапсировавшей звезды падает немножко впередее...
    Написано
  • Как определить тяжелые запросы?

    @Akina
    Что-нить типа
    log_duration = on
    log_min_duration_statement = 60000 /* логировать запросы дольше 1 минуты */

    Установить в postgresql.conf и перестартовать сервер.
    https://www.postgresql.org/docs/current/runtime-co...
    Написано
  • Какой ИБП ватт на 600-800 для умного дома выбрать?

    @Akina
    pfg21,
    я бы поставил блок питания с резервированием на необходимые реле и контроллеру 12 вольт (их проще искать по имени "резервированный блок питания систем видеонаблюдения" или что подобное).
    так будет эффективнее.

    +100500

    Только обычно они не для видеонаблюдения, а для СКУД (резервные источники питания для систем контроля доступа). В т.ч. они есть и в исполнении "монтаж на DIN-рейку".
    Написано
  • Visual Basic или Python для Excel?

    @Akina
    Ничто не мешает и продолжать использование VBA (особенно внутри Excel), и изучать Python.
    Написано
  • Как составить запрос на экспорт таблицы БД?

    @Akina
    даже не представляю как...
    к тому же неизвестно, попадут ли в лог запросы из графического интерфейса

    Гораздо проще делать это на стороне MySQL. Включаем General Log, выполняем нужные действия, отключаем General Log (жрёт он всё же достаточно неприлично) и изучаем накопленное. Сессии там выделяются достаточно несложно, и видны абсолютно все сделанные к серверу запросы (скрытые от пользователя предварительно-настроечные при установлении соединения и перед выполнением нужного запроса в том числе).

    При выгрузке через PMA - получается нужный результат

    Боюсь, ты обнаружишь, что PMA мухлюет и сшивает результат из кусков средствами PHP.
    Написано