SELECT 500 queue, operator, os.avg_os, ss.avg_ss
FROM ( SELECT operator,AVG(valuation) avg_os
FROM oper_survey
WHERE queue = '500' AND `date` BETWEEN '2021-06-01' AND '2021-06-16'
GROUP BY operator ) os
JOIN ( SELECT operator, AVG(valuation) avg_ss
FROM service_survey
WHERE queue = '500' AND `date` BETWEEN '2021-06-01' AND '2021-06-16'
GROUP BY operator ) ss USING (operator)
SELECT 500 queue, operator, COALESCE(os.avg_os, 0) avg_os, COALESCE(ss.avg_ss, 0) avg_ss
FROM ( SELECT operator FROM oper_survey WHERE queue = '500'
UNION
SELECT operator FROM service_survey WHERE queue = '500' ) op
LEFT JOIN ( SELECT operator,AVG(valuation) avg_os
FROM oper_survey
WHERE queue = '500' AND `date` BETWEEN '2021-06-01' AND '2021-06-16'
GROUP BY operator ) os USING (operator)
LEFT JOIN ( SELECT operator, AVG(valuation) avg_ss
FROM service_survey
WHERE queue = '500' AND `date` BETWEEN '2021-06-01' AND '2021-06-16'
GROUP BY operator ) ss USING (operator)
SELECT users.name AS username,
count(orders.id) AS orders_count
FROM users
JOIN orders ON orders.user_id=users.id
GROUP BY users.name
Правильно ли понимаю, что в случае отказа слейва на какое-то условное кол-во времени за которое mysql-bin.log заротейтится при достижении условных 100М, то при восстановлении слейв сервера, данные, которые находятся уже в архивном логе не будут записаны?
Погуглил, вроде как все советуют такое решение:
Есть большая БД на 50гб, и стоит задача удалить дубли в одной из таблиц.
[skipped]
Но проблема в том что в других таблицах есть связи через внешние ключи с моей основной.
что если я запущу программу, а нужной таблицы не будет?
дошёл до такой функции
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
-- WHERE TABLE_NAME = 'my_table_name'
;
что если в другой схеме уже есть таблица с таким названием...
Мне нужно загнать всё это дело в MySQL. Какие наиболее оптимальные способы для этого есть?
мне надо чтоб по артикулу, он определил product_id из другой таблицы и заменил related_sku ( артикул в даный момент) на product_id из другой таблицы.
ALTER TABLE related_products ADD COLUMN related_id INT;
UPDATE related_products p
JOIN another_table a ON p.related_sku = a.sku
SET p.related_id = a.product_id
WHERE p.related_id IS NULL
CREATE PROCEDURE move_rows ( IN position_move_from INT,
IN position_move_to INT )
UPDATE test
SET pos = CASE WHEN id = position_move_to
THEN position_move_from
ELSE pos + SIGN(position_move_to - position_move_from)
END
WHERE id BETWEEN LEAST(position_move_from, position_move_to)
AND GREATEST(position_move_from, position_move_to)
ORDER BY id = position_move_to;