表'test.grouped'不存在

问题描述 投票:0回答:1

我在leetcode.com上处理SQL问题。这是使用的数据表:

表格:产品

+--------------+---------+
| Column Name  | Type    |
+--------------+---------+
| product_id   | int     |
| product_name | varchar |
| unit_price   | int     |
+--------------+---------+

product_id是此表的主键。

表:销售

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| seller_id   | int     |
| product_id  | int     |
| buyer_id    | int     |
| sale_date   | date    |
| quantity    | int     |
| price       | int     |
+------ ------+---------+

此表没有主键,可以有重复的行。product_id是产品表的外键

问题是编写一个按总销售价格报告最佳卖方的SQL查询,如果有平局,则全部报告。

这是我的解决方法:

Select *
From (Select seller_id,sum(price) as total
     from sales
     group by seller_id) as grouped

where grouped.total = (Select max(grouped.total)
                     From grouped)

理论上,我认为这应该可行。但是我得到这个错误:

表'test.grouped'不存在

任何人都可以帮助我弄清楚为什么会出现此错误吗?

sql
1个回答
1
投票

您不能将表别名称为表。不过,在这种情况下,我建议使用窗口功能:

select *
from (Select seller_id, sum(price) as total,
             rank() over (order by sum(price) desc) as seqnum
      from sales
      group by seller_id
     ) s
where seqnum = 1;
© www.soinside.com 2019 - 2024. All rights reserved.