#mysql #sql #mysql-error-1064
#mysql #sql #mysql-ошибка-1064
Вопрос:
Я написал запрос для извлечения пола и имени сотрудников из таблиц e and profile
на основе идентификатора сотрудника emp
, теперь у меня есть таблица, подобная:
gender name
m qwqw
f wewe
m erer
m rtrt
f tyty
используемый запрос:
select gender, name from profile inner join e on profile.emp = e.emp
Теперь мне нужно написать подзапрос, чтобы создать таблицу для подсчета количества сотрудников определенного пола, например:
gender count
m 3
f 2
С запросом, который я написал:
SELECT COUNT(gender) AS 'Count' FROM (select gender, name from profile inner join e on profile.emp = e.emp)AS Gender GROUP BY Gender;
Я могу печатать:
count
3
2
но не столбец gender. Как я могу использовать соединение и подзапрос для правильного отображения данных по мере необходимости?
Ответ №1:
Вам необходимо включить gender
в select
. Вы можете агрегировать по столбцам и выражениям, которые не выбраны, хотя это несколько необычно.
В вашем случае вам не нужен подзапрос. Кроме того, я настоятельно рекомендую псевдонимы таблиц:
select gender, count(*)
from profile p inner join
e
on p.emp = e.emp
group by gender;
Ответ №2:
Попробуйте этот код, приведенный ниже =>
SELECT Gender, COUNT(gender) AS 'Count' FROM (select gender, name from profile inner join e on profile.emp = e.emp)AS Gender GROUP BY Gender;
Ответ №3:
Вы пробовали выбирать gender, COUNT(gender)
? Ваш запрос станет
SELECT gender, COUNT(gender) AS 'Count' FROM (select gender, name from profile inner join e on profile.emp = e.emp)AS Gender GROUP BY Gender;