表“ test.grouped”不存在

时间:2019-10-03 17:55:24

标签: sql

我在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”不存在

有人可以帮我弄清楚为什么我会收到此错误吗?

1 个答案:

答案 0 :(得分: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;