Неизвестный столбец «a.revenue» в «имеющей оговорку» - PullRequest
0 голосов
/ 23 марта 2020
SELECT 
      a.seller_id seller_id
FROM 
     (SELECT seller_id, sum(price) revenue 
      FROM Sales GROUP BY seller_id) as a
HAVING 
     a.revenue = min(a.revenue)

Я получил ошибку Unknown column 'a.revenue' in 'having clause' Я хотел бы получить продавцов с минимальным доходом. Кажется, я не мог ни использовать where, ни having. Что мне делать?

Ниже приведена структура таблицы, имя столбца 'цена' фактически является доходом для каждого продукта.

+-----------+------------+----------+------------+----------+-------+
| seller_id | product_id | buyer_id | sale_date  | quantity | price |
+-----------+------------+----------+------------+----------+-------+
| 1         | 1          | 1        | 2019-01-21 | 2        | 2000  |
| 1         | 2          | 2        | 2019-02-17 | 1        | 800   |
| 2         | 2          | 3        | 2019-06-02 | 1        | 800   |
| 3         | 3          | 4        | 2019-05-13 | 2        | 2800  |
+-----------+------------+----------+------------+----------+-------+

Ожидаемый результат -

+-------------+
| seller_id   |
+-------------+
| 2           |
+-------------+

Ответы [ 3 ]

1 голос
/ 23 марта 2020

Что вам нужно сделать, это сначала рассчитать минимальный доход в подзапросе и использовать его, чтобы проверить, какой доход всех продавцов равен минимальному доходу.

Примерно так

select 
  seller_id,sum(price) 
from sales 
group by seller_id 
having sum(price) = (select sum(price) from sales group by seller_id order by 1 limit 1)
0 голосов
/ 23 марта 2020

Сейчас я не могу это проверить, но, думаю, что-то подобное может сработать

Select * from (
SELECT a.seller_id seller_id FROM (SELECT seller_id, sum(price) revenue FROM Sales) as a) as res GROUP BY res.seller_id  having res.revenue = min(res.revenue) 
0 голосов
/ 23 марта 2020

revenue доступно только в подзапросе. Вам необходимо «экспортировать» его в результаты внешнего запроса, чтобы внешний запрос HAVING имел к нему доступ.

SELECT 
      a.seller_id seller_id, a.revenue revenue ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...