• Как это сделать в Excel?

    @Akina
    Ошибся. Оказывается, нужна SUBSTITUTE(), она же ПОДСТАВИТЬ().
    Написано
  • Как оптимизировать sql запрос?

    @Akina
    1. Переписать на CTE
    2. Переписать CASE на обратный и избавиться от двойного вычисления
    3. Заменить WHERE IN на WHERE EXISTS или INNER JOIN
    Написано
  • Как вставить строку с использованием значения из предыдущей строки?

    @Akina
    Дмитрий Плотников,
    Я в качестве подрядчика ставлю у заказчика новую систему. Для сохранения совместимости со старым форматом сбора данных с меня просят сделать такой вариант.


    CREATE TRIGGER tr_bi_tablename
    BEFORE INSERT ON tablename
    FOR EACH ROW
    SET NEW.delta_column = NEW.meter_column - COALESCE(( SELECT meter_column 
                                                         FROM tablename
                                                         ORDER BY created_at DESC LIMIT 1), 0);
    Написано
  • Какой lan тестер выбрать?

    @Akina
    Ziptar, Камеры при работе берут в среднем 4.2 ватта. Бюджет инжектора, если я верно помню, 150 ватт. По моще запас вполне себе... На проводе при такой длине теряется максимум 3-4 вольта, для PoE вообще ни о чём. Впрочем, уже неважно, помер Ефим, и чёрт с ним...
    Написано
  • Как дать Nekoray постоянные права админа?

    @Akina
    Посмотрите, как оно себя запускает. Скорее всего, прописывается в планировщике. Настройте задание на запуск от админа.
    Написано
  • Как вставить строку с использованием значения из предыдущей строки?

    @Akina
    это дупликация данных

    Дупликация или дублирование? Второе гораздо ближе к происходящему.. Впрочем, оба термина в данном случае - не по делу. Здесь применим термин "переопределённые данные" (но не "переопределение!").
    Написано
  • Как вставить строку с использованием значения из предыдущей строки?

    @Akina
    Руслан Федосеев,
    BEFORE insert триггер - считаем разницу с предыдущим total и записываем в соответствующее поле

    А потом выяснится. что записи могут добавляться "в середину", удаляться и корректироваться.
    Ну вот не для того триггеры существуют, не для того...
    Написано
  • Как вставить строку с использованием значения из предыдущей строки?

    @Akina
    Задача - одним вызовом к базе вставить в базу новое значение Total, а в колонку 1h вставить разницу между новым значением Total и предыдущим Total.

    Дерьмовая задача.
    То, что вы хотите поиметь, называется "переопределённые данные". И в общем случае является bad practice.
    Нужна дельта - считайте в запросе.

    PS. И неплохо бы хотя бы указать версию MySQL..
    Написано
  • Какой lan тестер выбрать?

    @Akina
    Ziptar, Угу, именно под конкретные задачи. Делов-то - видеокамеру питать... работает-работает, потом хлоп - одной камеры нет. Подходишь, меняешь на выходах её и соседнюю - работают обе, возвращаешь - опять одна не подымается... оставляешь помененными. Через полдня возвращаешь - работают обе. Инжектор на 8 портов, соответственно питает 4 видеокамеры и 4 точки доступа, длина провода до устройств от 10 до 50 метров, всё внутри одного здания и на одном этаже. И среднее время до очередного "обмена" - 3 дня. Камеры - отваливаются, точки доступа нет. Ну вот чем не мистика?
    И куда тут ещё можно прислонить "уметь пользоваться"?
    Написано
  • Какой lan тестер выбрать?

    @Akina
    SunTechnik, инжектор - это по моему личному мнению кривой-косой костыль, который почти наверняка ни к каким стандартам не склонен. Мне приходилось иметь дело, причём и с безымянными, и с очень даже вендорскими - и от всех впечатления более чем мерзкие. Полное ощущение, что они тупо гонят 56 вольт в кабель, и ничто им не указ - ни потребляемый ток, ни попытка устройства на "той" стороне что-то вякать о стандартах и классах... в общем, изжил эту дрянь в нашей сетке как класс.
    Написано
  • Какой lan тестер выбрать?

    @Akina
    Вообще-то все LAN-тестеры имеют защиту от PoE - ну кроме уж совсем "левых", может быть.
    Написано
  • Как организовать хранение покупок при продаже услуг с разными характеристиками?

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

    @Akina
    Ипатьев,
    И где-то потом надо всю эту структуру (и её изменения) отдельно хранить.

    Зачем? Ну то есть описание, какой атрибут что означает - да, надо. Но это вопрос, нужный на этапе разработки (и потом поддержки) соответствующего модуля клиентского приложения. И этот модуль уже жёстко привязывается (хардкодом имён скорее всего) к структуре и именам атрибутов JSON для конкретного типа записи. И на основе этой привязки он уже будет выдавать обработанные наборы записей, приведённых к базовой структуре и готовых к использованию модулями отображения и агрегации/анализа.
    Написано
  • Как правильно составить функции через условия в Excel и затем построить график на основе этих данных?

    @Akina
    hint000, при количестве альтернатив более двух я предпочитаю делать вот так:
    67121dd3c02c5287275420.png
    Лучше читается. И не имеет такого жёсткого лимита, как у функции ЕСЛИ() на вложенность.
    Написано
  • Как правильно составить функции через условия в Excel и затем построить график на основе этих данных?

    @Akina
    как правильно составить функции через условия в Excel

    Точно так же, как бы это делалось в любом другом языке программирования в формуле присвоения, записанной одним оператором - ну, с учётом имеющихся функций в Excel, понятное дело...

    как построить график на основе этих данных

    Не, совесть есть? Нам за вас нажать F1 и справку почитать, что ли?
    Для вставки графика X-Y вставляете точечную диаграмму, а дальше строго по описанию в справке.
    Написано
  • Как организовать хранение покупок при продаже услуг с разными характеристиками?

    @Akina
    Ипатьев, ага, а потом начнётся "выведите мне, сколько я наэкономил за прошлый год". Хотя сколько там будет тех записей на юзера? слёзы, пусть даже за несколько лет...

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

    @Akina
    В отрыве от конкретных задач вариант широкой "дырявой" таблицы мне кажется самым плохим

    Для MySQL - однозначно да. В других СУБД может быть и иначе - скажем. в SQL Server использование Sparse Column Sets позволит создавать таблицы с ну очень солидным (где-то до 30 тыс.) количеством полей.

    Ипатьев,
    Akina тоже рекомендует EAV

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

    @Akina
    нужны джойны с характеристиками товаров (id ресторана например)

    Оба варианта мне, понятное дело, не нравятся, но ни выбрать между ними, ни придумать что-то другое я не могу.

    Вот сразу возникает вопрос - а вот такая выборка, в которой будут использоваться для обработки разреженные атрибуты, она будет включать только одну категорию покупок либо группу совместимых по используемым атрибутам категорий, или может быть ну вообще что угодно (фильтруя купоны по максимальному количеству мест за столиком в ресторане, можем включить в список фильтруемых записей и доступы к файлам)?

    То есть я рассматриваю схему, когда имеется одна базовая таблица, и для каждого типа продажи или сравнительно совместимой группы - отдельная таблица (для группы - возможно, слабо разреженная). То есть некий промежуточный вариант. Возможно, если имеется некая ну совершенно кардинальная несовместимость, может быть несколько вот таких кустов, то есть очень ограниченное количество базовых таблиц, и вокруг каждой своя поросль связанных с ней частных.

    Как я понимаю, EAV не рассматривается принципиально? У него собственно единственный плюс в том, что туда пролезает ну абсолютно любая чухня. А всё остальное - да, минусы. Включая и производительность.

    Что до JSON. Ну формально он индексируется... конечно. Но тут сходу прилетает другая пакость - потребуется индивидуальный индекс практически для каждого типа записи, а MySQL не постгресс, и фильтрованные индексы не умеет. А без индекса - это фуллскан на каждый запрос, и уже на среднем массиве данных всё умрёт, ибо парсинг JSON в MySQL почти внешний. Хотя если есть набор критичных и популярных запросов, можно пойти на частичное переопределение, на вычисляемые виртуальные поля, хранимые в регулярных индексах (которых тоже в штуках получится не по детски), а всё остальное пусть себе тормозит нещадно, переживётся.

    Кстати, идея "по таблице на услугу" не так уж и плоха. Вроде бы получается и зоопарк, но собираем всю работу с типом в одну не таблицу, а БД (там ведь не одна таблица на тип получится, будут же ещё всякие словари и справочники, где-то общие, типа адресов, которые ещё можно вынести в служебную БД, а где-то вообще для типа индивидуальные) и один модуль (на клиенте), и уже не так грустно. А если будут требоваться запросы, агрегирующие из нескольких групп, то потенциальную сложность немного закроют стандартизованные представления или процедуры, формирующие сеансовые временные таблицы, а то и дополнительные общие агрегирующие таблицы, обновляемые из триггеров.
    Написано
  • Безопасно ли подключаться к Mikrotik'у через Winbox через интернет?

    @Akina
    Ну добавьте ещё к белому списку что-нибудь типа port knocking... хотя как по мне, предложенных Артём мер вполне достаточно, если вы своевременно обновляете внутреннее ПО.
    Написано