Дед Мазай
Гений
(58137)
3 года назад
Запрос правильный.
Distinct не нужен, он ничего не меняет.
Параметр Count может быть любым кроме NULL.
Хороший стиль: давать таблицам псевдонимы. Например:
Select Building_Name, Count (Building) * 100 / Capacity
From Здание b left Join Рабочие w
On w.Building = b.Building_Name
group by Building_Name, Capacity
Daniel KiriУченик (228)
3 года назад
Мне вот так вот ответили: "Ты используешь столбец из другой таблицы, но как этот, так и предыдущий запрос работают, только если соблюсти логику group by." и я кажется понимаю суть. 1) произошло объединение таблиц 2) группировка по столбцу Building 3) счёт count 4) А на что он делится? В моём случае я делю на значение столбца Capacity и т. к. до группировки они все были одинаковыми, то я разделю на одно из нужных мне значений (при объединении таблиц всем сотрудникам значение Capacity было прописано одинаковое), то с ответом проблем не возникнет. Можно ли как-то обратиться к значению Capacity из ещё необъединённой таблицы по индексу по которому мы группировали?
Мой вариант, он работает, но в запросе чего-то не хватает, чтобы он был правильным с точки зрения логики:
Select Distinct Building_Name, Count (Building) * 100 / Capacity
From Здание left Join Рабочие
On Рабочие.Building = Здание.Building_Name
group by Building_Name, Capacity;