Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Просьба помочь исправить SQL запрос

Задача:

Выгрузи таблицу из двух полей: первое поле с фамилией сотрудника, второе — с количеством пользователей, чьи запросы этот сотрудник обработал. Назови поля employee_last_name и all_customers соответственно. Сгруппируй записи по идентификатору сотрудника. Отсортируй количество пользователей по убыванию.

*К таблице staff присоедини таблицу client с помощью оператора LEFT OUTER JOIN*


Запрос:

SELECT l.last_name AS employee_last_name,
i.customer_id AS all_customers
FROM client as i
LEFT OUTER JOIN client AS l ON i.customer_id=l.customer_id
GROUP BY i.customer_id
ORDER BY i.customer_id DESC;

В ответе:

column "l.last_name" must appear in the GROUP BY clause or be used in an aggregate function

SELECT l.last_name AS employee_last_name,
^^^
i.customer_id AS all_customers
FROM client as i
LEFT OUTER JOIN client AS l ON i.customer_id=l.customer_id
GROUP BY i.customer_id
ORDER BY i.customer_id DESC;

По дате
По рейтингу
Аватар пользователя
Новичок

SELECT s.last_name AS employee_last_name,
COUNT(c.customer_id) AS all_customers
FROM staff as s
LEFT OUTER JOIN client AS c ON s.employee_id= c.support _rep_id
GROUP BY s.employee_id
ORDER BY all_customers DESC,
s.last_name;

Аватар пользователя
Оракул
1234567
 SELECT s.last_name AS employee_last_name,  
COUNT(DISTINCT c.customer_id) AS all_customers  
FROM staff as s  
LEFT OUTER JOIN client AS c ON s.staff_id=c.staff_id  
GROUP BY s.last_name  
ORDER BY COUNT(DISTINCT c.customer_id) DESC; 
 
Аватар пользователя
Искусственный Интеллект

Ну добавьте агрегатную функцию (кстати в группировке полей маловато)

Аватар пользователя
Ученик
7мес

SELECT s.last_name AS employee_last_name,
COUNT(c.customer_id) AS all_customers
FROM staff AS s
LEFT OUTER JOIN client AS c ON s.employee_id = c.support _rep_id
GROUP BY s.employee_id
ORDER BY all_customers DESC