Size: a a a

2020 December 26

ЕО

Евгений Овчинников... in MySQL
спасибо
источник

IZ

Ilia Zviagin in MySQL
Павел Червов
Переслано от Павел Червов

Ребят, подскажите плис, делаю custom docker image - обертку над mysql:5.7

если делать run самого mysql:5.7 вот так:

docker run \
   --name db --rm -it \
   -e MYSQL_ROOT_PASSWORD=secret \
   -e MYSQL_DATABASE=test \
   mysql:5.7
то все работает,

если делаю run моей обертки вот так:
docker run \
   --name db --rm -it \
   -e ROOT_PASSWORD=secret \
   -e DATABASE=test \
   db

не работает ☹️

[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
[ERROR] Aborting

если в Dockerfile после вызова mysqld задам --user=root, то контейнер запуститься, но к нему будет не подключиться:

% docker exec db mysql -p
Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Пароль не запрашивает при этом… 🤯
Это не про MySQL вопросы, а про твой любимый докер
источник

IZ

Ilia Zviagin in MySQL
rusikus
Ну без указания таблицы
Никак. Следующий вопрос
источник

AK

Alex K. in MySQL
Гайз, привет, нужна помощь опытных дядей, помогите.

Есть задача, которую я не понимаю, как решить или гуглить:

Нужно выбрать taxi_station_id в первом столбце, количество  выполненных поездок по каждой taxi_station вторым столбцом,
driver_id в третьем и количество выполненных поездок по водителям в четвертом.

есть drivers - где указана taxi_station
есть taxi_station - где указан driver
есть orders - где указан driver

Я понимаю, как взять по отдельности цифры, вот например количество заказов по станции

select ts.id, COUNT(orders.id) as "Number of rides per station"
from taxi_stations ts
   left join drivers on ts.id = drivers.cooperative_taxi_station_id
   left join orders on orders.driver_id = drivers.id
group by ts.id;

Как через union получить результат в 2 столбца тоже понимаю.
Но как сделать в одном селекте 4 столбца, в которых дважды нужно группировать заказы по разным полям и когда априори кол-во станций и водителей отличается (то есть не равное количество записей будет), вообще не понимаю.

Может это задача с подвохом и такой результат получить нельзя?..
источник

S

Syntax Highlight Bot in MySQL
Alex K.
Гайз, привет, нужна помощь опытных дядей, помогите.

Есть задача, которую я не понимаю, как решить или гуглить:

Нужно выбрать taxi_station_id в первом столбце, количество  выполненных поездок по каждой taxi_station вторым столбцом,
driver_id в третьем и количество выполненных поездок по водителям в четвертом.

есть drivers - где указана taxi_station
есть taxi_station - где указан driver
есть orders - где указан driver

Я понимаю, как взять по отдельности цифры, вот например количество заказов по станции

select ts.id, COUNT(orders.id) as "Number of rides per station"
from taxi_stations ts
   left join drivers on ts.id = drivers.cooperative_taxi_station_id
   left join orders on orders.driver_id = drivers.id
group by ts.id;

Как через union получить результат в 2 столбца тоже понимаю.
Но как сделать в одном селекте 4 столбца, в которых дважды нужно группировать заказы по разным полям и когда априори кол-во станций и водителей отличается (то есть не равное количество записей будет), вообще не понимаю.

Может это задача с подвохом и такой результат получить нельзя?..
источник

IZ

Ilia Zviagin in MySQL
Alex K.
Гайз, привет, нужна помощь опытных дядей, помогите.

Есть задача, которую я не понимаю, как решить или гуглить:

Нужно выбрать taxi_station_id в первом столбце, количество  выполненных поездок по каждой taxi_station вторым столбцом,
driver_id в третьем и количество выполненных поездок по водителям в четвертом.

есть drivers - где указана taxi_station
есть taxi_station - где указан driver
есть orders - где указан driver

Я понимаю, как взять по отдельности цифры, вот например количество заказов по станции

select ts.id, COUNT(orders.id) as "Number of rides per station"
from taxi_stations ts
   left join drivers on ts.id = drivers.cooperative_taxi_station_id
   left join orders on orders.driver_id = drivers.id
group by ts.id;

Как через union получить результат в 2 столбца тоже понимаю.
Но как сделать в одном селекте 4 столбца, в которых дважды нужно группировать заказы по разным полям и когда априори кол-во станций и водителей отличается (то есть не равное количество записей будет), вообще не понимаю.

Может это задача с подвохом и такой результат получить нельзя?..
Не делай в одном select, кто заставляет то?
источник

AK

Alex K. in MySQL
Наверное, я не правильно выразился, я имел в виду в одном запросе.
источник

AK

Alex K. in MySQL
Я по-моему пробовал несколько селектов, но получал ошибку "не равное количество записей"
источник

РR

Руслан Ruslan73... in MySQL
Можно, оконными функциями
источник

РR

Руслан Ruslan73... in MySQL
Сount для станций считать с partition by ts.id а Count по drivers с partition by drivers.id
источник

AK

Alex K. in MySQL
Руслан Ruslan73
Сount для станций считать с partition by ts.id а Count по drivers с partition by drivers.id
Спасибо! Ушел изучать вопрос
источник

r

rusikus in MySQL
Ilia Zviagin
Никак. Следующий вопрос
Уже понял, спасибо, решили вопрос 👍
источник

ЕО

Евгений Овчинников... in MySQL
это видео мне не помогло
источник

ЕО

Евгений Овчинников... in MySQL
решил задачу через wsrep_last_committed, сравниваю показатели с разных нод. если будет лаг, разница будет больше 0
источник

DE

Denis Efremov in MySQL
Alex K.
Гайз, привет, нужна помощь опытных дядей, помогите.

Есть задача, которую я не понимаю, как решить или гуглить:

Нужно выбрать taxi_station_id в первом столбце, количество  выполненных поездок по каждой taxi_station вторым столбцом,
driver_id в третьем и количество выполненных поездок по водителям в четвертом.

есть drivers - где указана taxi_station
есть taxi_station - где указан driver
есть orders - где указан driver

Я понимаю, как взять по отдельности цифры, вот например количество заказов по станции

select ts.id, COUNT(orders.id) as "Number of rides per station"
from taxi_stations ts
   left join drivers on ts.id = drivers.cooperative_taxi_station_id
   left join orders on orders.driver_id = drivers.id
group by ts.id;

Как через union получить результат в 2 столбца тоже понимаю.
Но как сделать в одном селекте 4 столбца, в которых дважды нужно группировать заказы по разным полям и когда априори кол-во станций и водителей отличается (то есть не равное количество записей будет), вообще не понимаю.

Может это задача с подвохом и такой результат получить нельзя?..
а что, у одной taxi_station может быть только один водитель?
источник

AK

Alex K. in MySQL
Denis Efremov
а что, у одной taxi_station может быть только один водитель?
нет, больше одного
источник

DE

Denis Efremov in MySQL
Alex K.
нет, больше одного
Тогда какого из водителей показывать на той же строке со станцией?
источник

AK

Alex K. in MySQL
Denis Efremov
Тогда какого из водителей показывать на той же строке со станцией?
В этом и вопрос, что их может быть больше одного. Возможно, нужно выводить водителей и соответствующее число выполненных ими заказов через concat напротив станций, к которым относятся водители.
Но это явно не указано в задаче.
источник

DE

Denis Efremov in MySQL
Alex K.
В этом и вопрос, что их может быть больше одного. Возможно, нужно выводить водителей и соответствующее число выполненных ими заказов через concat напротив станций, к которым относятся водители.
Но это явно не указано в задаче.
Покажи задачу полностью
источник

EA

El Anonimo in MySQL
Приветствую.
Как пофиксить
Argument of type 'string' is not assignable to parameter of type 'Config'
в строке
const db = await sqlite.open("./mydb.sqlite") ?
И Property 'finalize' does not exist on type 'RunResult<Statement>' в последней строке
const statement = await db.prepare("UPDATE Person SET name = ?, email = ? WHERE id = ?");
const result = await statement.run(req.body.name, req.body.email, req.query.id);
result.finalize();
Гуглинг не нашёл похожего.
источник