Size: a a a

2021 October 09

EG

El Grizlo in MySQL
всем добра)
ребят, в чем может быть расхождение?

SELECT AVG(price) AVG_price
FROM
(SELECT price, maker
FROM Product p
JOIN PC ON P.model = PC.model
WHERE P.maker = 'A'

UNION ALL
SELECT price, maker
FROM Product P
JOIN Laptop ON P.model = Laptop.model
Where P.maker = 'A') price;

этот код дает разные резы в моем локальном mySQL и на сайте-задачнике. На моем считает некорректно.
источник

EG

El Grizlo in MySQL
mySQL может сам по себе криво считать?
источник

EG

El Grizlo in MySQL
сайт
источник

EG

El Grizlo in MySQL
у меня
источник

AM

Alexander Makhrachyo... in MySQL
А если чуть подробнее? Прочитал, что если подразумевается, что подзапрос после каждого выполнения будет возвращать одинаковое значение, то SQL это автоматически понимает и выполнит подзапрос только 1 раз. А во втором моём примере основной запрос пробегает по всем строкам и для каждой строки выполняет проверку WHERE - это тоже прочитал. В действительности всё не так?
источник

IZ

Ilia Zviagin in MySQL
Так нельзя, в первом наборе одна колонка, во втором - две. Их нельзя делать UNION
источник

IZ

Ilia Zviagin in MySQL
Подробнее: нет никаких правил, которые позволяли бы утверждать, сколько раз какой подзапрос будет выполняться
источник

IZ

Ilia Zviagin in MySQL
А, сори, не так прочитал..
источник

EG

El Grizlo in MySQL
ну он и без maker некорректно считает
источник

IZ

Ilia Zviagin in MySQL
Что там некорректного? Всё ок
источник

EG

El Grizlo in MySQL
резы разные
источник

EG

El Grizlo in MySQL
источник

IZ

Ilia Zviagin in MySQL
Кажется, это задание с SQL-ex.ru ?
источник

EG

El Grizlo in MySQL
да
источник

EG

El Grizlo in MySQL
вопрос не в задании. считается по-разному
источник

IZ

Ilia Zviagin in MySQL
Это что должно значить-то?
источник

IZ

Ilia Zviagin in MySQL
По-разному с чем ?
источник

EG

El Grizlo in MySQL
источник

IZ

Ilia Zviagin in MySQL
Это ж один запрос.
источник

EG

El Grizlo in MySQL
вот именно )
на домашнем mySQL рез один, на сайте другой )
источник