Size: a a a

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

2021 February 18

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
A.K
кто-нибудь может помочь с объяснением этого запроса...?
Слушай, и правда очень замороченный запрос...
Не возьмусь за его толкование, долго будет. и схему надо знать.
Его надо уплощать, убирать подзапросы из FROM, будет и быстрее, и понятнее.
источник

VL

V. Lavrinovics 🇦🇹... in DBA - русскоговорящее сообщество
mysql

Скажите, почему там нужно вводить
и item_id = 1 - 1
и category_id = 1 -1 (или 2 - 2)
?
У меня дублируются два столбца и когда обращаюсь к нужным параметрам выдает два одинаковых массива, а не один нужный
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
A.K
SELECT sum(t4.value) as "План", STR_TO_DATE(t4.date, '%d-%m-%Y') AS "time" FROM
(SELECT  t.id, t.subject, t3.depth, t.value,
  CASE WHEN t.field_name = "Август 2020 (план)" THEN "2020-08-01"
 WHEN t.field_name = "Август 2020 (факт)" THEN "2020-08-01"
 WHEN t.field_name = "Апрель 2020 (план)" THEN "2020-04-01"
 WHEN t.field_name = "Апрель 2020 (факт)" THEN "2020-04-01"
 WHEN t.field_name = "Декабрь 2020 (план)" THEN "2020-12-01"
 WHEN t.field_name = "Декабрь 2020 (факт)" THEN "2020-12-01"
 WHEN t.field_name = "Июль 2020 (план)" THEN "2020-07-01"
 WHEN t.field_name = "Июль 2020 (факт)" THEN "2020-07-01"
 WHEN t.field_name = "Июнь 2020 (план)" THEN "2020-06-01"
 WHEN t.field_name = "Июнь 2020 (факт)" THEN "2020-06-01"
 WHEN t.field_name = "Май 2020 (план)" THEN "2020-05-01"
 WHEN t.field_name = "Май 2020 (факт)" THEN "2020-05-01"
 WHEN t.field_name = "Март 2020 (план)" THEN "2020-03-01"
 WHEN t.field_name = "Март 2020 (факт)" THEN "2020-03-01"
 WHEN t.field_name = "Ноябрь 2020 (план)" THEN "2020-11-01"
 WHEN t.field_name = "Ноябрь 2020 (факт)" THEN "2020-11-01"
 WHEN t.field_name = "Октябрь 2020 (план)" THEN "2020-10-01"
 WHEN t.field_name = "Октябрь 2020 (факт)" THEN "2020-10-01"
 WHEN t.field_name = "Сентябрь 2020 (план)" THEN "2020-09-01"
 WHEN t.field_name = "Сентябрь 2020 (факт)" THEN "2020-09-01"
 WHEN t.field_name = "Февраль 2020 (план)" THEN "2020-02-01"
 WHEN t.field_name = "Февраль 2020 (факт)" THEN "2020-02-01"
 WHEN t.field_name = "Январь 2020 (план)" THEN "2020-01-01"
 WHEN t.field_name = "Январь 2020 (факт)" THEN "2020-01-01" end AS DATE
  FROM (
         SELECT i.id AS id, i.subject AS subject, i.updated_on as updated_on,
           cf.name AS field_name,
           cv.value AS value
         FROM issues i
       LEFT JOIN custom_values cv
           ON i.id = cv.customized_id
       LEFT JOIN custom_fields cf
           ON cv.custom_field_id=cf.id      
        WHERE cv.customized_type="Issue" and (i.project_id = 2284)) t
  LEFT join
  (SELECT  t2.id,
 GROUP_CONCAT(DISTINCT(CASE WHEN t2.field_name = "Код бюджета" THEN t2.value else null END)) AS depth  
  FROM (
         SELECT i.id AS id, i.subject AS subject, i.updated_on as updated_on,
           cf.name AS field_name,
           cv.value AS value
         FROM issues i
       LEFT JOIN custom_values cv
           ON i.id = cv.customized_id
       LEFT JOIN custom_fields cf
           ON cv.custom_field_id=cf.id      
        WHERE cv.customized_type="Issue" and (i.project_id = 2284)) t2
  GROUP BY t2.id) t3        
  ON t.id=t3.id
  WHERE INSTR(t.field_name, "план")>0 ) t4
  WHERE substr(t4.date,1,7) in ($time)  and t4.value!=0 and t4.depth=1 and t4.subject = 'Себестоимость реализованной готовой продукции (товаров, работ, услуг)'
  group by t4.date
Вам поручено это дело — так что действуйте!
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
V. Lavrinovics 🇦🇹
mysql

Скажите, почему там нужно вводить
и item_id = 1 - 1
и category_id = 1 -1 (или 2 - 2)
?
У меня дублируются два столбца и когда обращаюсь к нужным параметрам выдает два одинаковых массива, а не один нужный
Так, давай , проснись , попей кофе, прими ванну, и затем задавай вопрос снова. УЖЕ НОРМАЛЬНО!
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
A.K
SELECT sum(t4.value) as "План", STR_TO_DATE(t4.date, '%d-%m-%Y') AS "time" FROM
(SELECT  t.id, t.subject, t3.depth, t.value,
  CASE WHEN t.field_name = "Август 2020 (план)" THEN "2020-08-01"
 WHEN t.field_name = "Август 2020 (факт)" THEN "2020-08-01"
 WHEN t.field_name = "Апрель 2020 (план)" THEN "2020-04-01"
 WHEN t.field_name = "Апрель 2020 (факт)" THEN "2020-04-01"
 WHEN t.field_name = "Декабрь 2020 (план)" THEN "2020-12-01"
 WHEN t.field_name = "Декабрь 2020 (факт)" THEN "2020-12-01"
 WHEN t.field_name = "Июль 2020 (план)" THEN "2020-07-01"
 WHEN t.field_name = "Июль 2020 (факт)" THEN "2020-07-01"
 WHEN t.field_name = "Июнь 2020 (план)" THEN "2020-06-01"
 WHEN t.field_name = "Июнь 2020 (факт)" THEN "2020-06-01"
 WHEN t.field_name = "Май 2020 (план)" THEN "2020-05-01"
 WHEN t.field_name = "Май 2020 (факт)" THEN "2020-05-01"
 WHEN t.field_name = "Март 2020 (план)" THEN "2020-03-01"
 WHEN t.field_name = "Март 2020 (факт)" THEN "2020-03-01"
 WHEN t.field_name = "Ноябрь 2020 (план)" THEN "2020-11-01"
 WHEN t.field_name = "Ноябрь 2020 (факт)" THEN "2020-11-01"
 WHEN t.field_name = "Октябрь 2020 (план)" THEN "2020-10-01"
 WHEN t.field_name = "Октябрь 2020 (факт)" THEN "2020-10-01"
 WHEN t.field_name = "Сентябрь 2020 (план)" THEN "2020-09-01"
 WHEN t.field_name = "Сентябрь 2020 (факт)" THEN "2020-09-01"
 WHEN t.field_name = "Февраль 2020 (план)" THEN "2020-02-01"
 WHEN t.field_name = "Февраль 2020 (факт)" THEN "2020-02-01"
 WHEN t.field_name = "Январь 2020 (план)" THEN "2020-01-01"
 WHEN t.field_name = "Январь 2020 (факт)" THEN "2020-01-01" end AS DATE
  FROM (
         SELECT i.id AS id, i.subject AS subject, i.updated_on as updated_on,
           cf.name AS field_name,
           cv.value AS value
         FROM issues i
       LEFT JOIN custom_values cv
           ON i.id = cv.customized_id
       LEFT JOIN custom_fields cf
           ON cv.custom_field_id=cf.id      
        WHERE cv.customized_type="Issue" and (i.project_id = 2284)) t
  LEFT join
  (SELECT  t2.id,
 GROUP_CONCAT(DISTINCT(CASE WHEN t2.field_name = "Код бюджета" THEN t2.value else null END)) AS depth  
  FROM (
         SELECT i.id AS id, i.subject AS subject, i.updated_on as updated_on,
           cf.name AS field_name,
           cv.value AS value
         FROM issues i
       LEFT JOIN custom_values cv
           ON i.id = cv.customized_id
       LEFT JOIN custom_fields cf
           ON cv.custom_field_id=cf.id      
        WHERE cv.customized_type="Issue" and (i.project_id = 2284)) t2
  GROUP BY t2.id) t3        
  ON t.id=t3.id
  WHERE INSTR(t.field_name, "план")>0 ) t4
  WHERE substr(t4.date,1,7) in ($time)  and t4.value!=0 and t4.depth=1 and t4.subject = 'Себестоимость реализованной готовой продукции (товаров, работ, услуг)'
  group by t4.date
Как бы тут замороченный расчёт чего-то сложного, по месяцам, видимо, плана прибыли.
Ну запрос можно упростить, подзапросы t3 и t  слить в один, убрать подзапросы из фром ....

Будет попроще. Но надо аккуратно разбираться.

Ну и запрос видимо временный, поскольку такой вот CASE с всобаченными датами в списке вывода...
Наверное, чинить его особенно не нужно.
источник

V

Vladimir in DBA - русскоговорящее сообщество
Всем привет.
Подскажите есть ли смысл вешать индекс на колонку по которой делается ORDER_BY?
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Vladimir
Всем привет.
Подскажите есть ли смысл вешать индекс на колонку по которой делается ORDER_BY?
Если данных не много то смысла нету
источник

V

Vladimir in DBA - русскоговорящее сообщество
Serega Carbon
Если данных не много то смысла нету
Нет, данных очень много
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Vladimir
Нет, данных очень много
ну тогда ставь индекс
источник

YA

Yusuf Alexey in DBA - русскоговорящее сообщество
У меня есть запрос, как можно написать, так чтобы я мог сразу вставлять скидку, в зависимости от вставленной стоимости?
источник

V

Vera in DBA - русскоговорящее сообщество
#вакансия #мск #москва #postgre #postgres #postgresql #developer #разработчик #бд #job #вакансия #remote #удаленно #bi #dwh #кхд #офис

Добрый день!

Локация: Москва офис
Также рассматриваем кандидатов на удаленную работу
Занятость: полная
Вилка: 190k – 230k net
Вакансия: Разработчик БД и отчетности

Условия:

ТК РФ+ДМС;
Хорошая команда;
Премии.

Задачи:

Разработка на уровне баз данных (запросы, хранимые процедуры, триггеры, миграции …);
Дизайн, разработка и поддержка отчетности;
Анализ производительности и оптимизация существующих баз данных;
Разработка алгоритмов и средств преобразования данных на уровне хранения, включая их агрегирование и сжатие;
Разработка алгоритмов и средств обеспечения безопасности данных на уровне их хранения;
Разработка механизмов обеспечения отказоустойчивости и горизонтального масштабирования на уровне баз данных;
Реверс инжиниринг моделей данных на основании структур данных в БД и документирование полученных знаний;
Приемка исходного кода у сторонних подрядчиков.

Профессиональный опыт:

-Релевантный опыт работы;
-Опыт витрин данных, отчетов (любые BI);
-Большой опыт разработки и оптимизации РСУБД (PostgreSQL) с NoSQL (MongoDB).


С радостью отвечу подробно на все вопросы.
@Vera_K_V
источник

SF

Semyon Fedin in DBA - русскоговорящее сообщество
#вакансия #москва #postgre #postgres #postgresql #mysql #ClickHouse #офис

Ищем DBA в rutube.ru
Локация: Москва (офис)
Занятость: полная
Вилка: 200-300к net (обсуждается индивидуально)

Что нужно делать?
- Обеспечивать отказоустойчивость и доступность баз данных (MySql, PostgreSQL, ClickHouse);
- Поддерживать ETL системы;
- Оптимизировать производительность БД, отладка, troubleshooting;
- Подготавливать и выгружать данные для аналитиков.

Ожидания от кандидата:
- Опыт работы с различными типами СУБД (MySQL, PostgreSQL, Clickhouse, MongoDB, Redis);
- Понимание принципов работы СУБД, широкий кругозор в этой области;
- Опыт работы с ETL системами и системами отчетности;
- Понимание и практический опыт построения отказоустойчивых систем;
- Опыт работы с системами управления конфигурациями (ansible);
- Уверенное знание SQL.

Ссылка на вакансию: https://hh.ru/vacancy/39934261

Telegram: @SemyonF
Почта: semen.fedin@ruform.ru
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Yusuf Alexey
У меня есть запрос, как можно написать, так чтобы я мог сразу вставлять скидку, в зависимости от вставленной стоимости?
так последняя же колонка|, вот и вставляй
источник
2021 February 19

E

Etki in DBA - русскоговорящее сообщество
Adv0cat
Само слово село 😐
У нас тут есть поселок бугры, меня каждый раз радует. Там ещё была великолепная история про конфликт "коренных жителей" с "понаехавшим" мурино за дорогу с бульдозерами и окопами, но сейчас не смог целиком найти.
источник

A

Adv0cat in DBA - русскоговорящее сообщество
местные истории 😊
источник

YA

Yusuf Alexey in DBA - русскоговорящее сообщество
Ilia Zviagin
так последняя же колонка|, вот и вставляй
Мне нужно, чтобы вставка происходила так, например у меня есть только два поля.
1. вставляю 0.18
2. вставляю значение первого поля*2.
источник

YA

Yusuf Alexey in DBA - русскоговорящее сообщество
Значение в первое поле вставляется не откуда-то, а рандомно
источник

VL

V. Lavrinovics 🇦🇹... in DBA - русскоговорящее сообщество
Mysql /

Есть такой запрос:
"
     SELECT * FROM items A
       INNER JOIN item_category B ON A.id = 1 AND B.category_id = 3
     "


Нужно не только дату из таблицы items,
но и из другой таблицы categories нужно получить categories.category значение.
Таблица categories связана с таблицей item_category по category_id.
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
V. Lavrinovics 🇦🇹
Mysql /

Есть такой запрос:
"
     SELECT * FROM items A
       INNER JOIN item_category B ON A.id = 1 AND B.category_id = 3
     "


Нужно не только дату из таблицы items,
но и из другой таблицы categories нужно получить categories.category значение.
Таблица categories связана с таблицей item_category по category_id.
Ну так добавь ещё один join, тут можно
источник

SF

Semyon Fedin in DBA - русскоговорящее сообщество
#вакансия #москва #postgre #postgres #postgresql #mysql #ClickHouse #офис

Ищем DBA в rutube.ru
Локация: Москва (офис)
Занятость: полная
Вилка: 200-300к net (обсуждается индивидуально)

Что нужно делать?
- Обеспечивать отказоустойчивость и доступность баз данных (MySql, PostgreSQL, ClickHouse);
- Поддерживать ETL системы;
- Оптимизировать производительность БД, отладка, troubleshooting;
- Подготавливать и выгружать данные для аналитиков.

Ожидания от кандидата:
- Опыт работы с различными типами СУБД (MySQL, PostgreSQL, Clickhouse, MongoDB, Redis);
- Понимание принципов работы СУБД, широкий кругозор в этой области;
- Опыт работы с ETL системами и системами отчетности;
- Понимание и практический опыт построения отказоустойчивых систем;
- Опыт работы с системами управления конфигурациями (ansible);
- Уверенное знание SQL.

Ссылка на вакансию: https://hh.ru/vacancy/39934261

Telegram: @SemyonF
Почта: semen.fedin@ruform.ru
источник