【发布时间】:2018-08-14 04:58:08
【问题描述】:
由于我是 PostgreSQL 新手,所以我使用 PostgreSQL sample database 来学习和练习 PostgreSQL。我的问题陈述是找到在 4 月 10 日至 13 日期间租用电影的前 15 名最高消费客户的付款?我的查询如下:
SELECT customer.first_name,payment.amount
FROM customer
INNER JOIN payment ON customer.customer_id = payment.customer_id
WHERE customer_id IN (SELECT customer_id
FROM (
SELECT customer_id, SUM(amount)
FROM payment
WHERE extract(month from payment_date) = 4
AND extract(day from payment_date) BETWEEN 10 AND 13
GROUP BY customer_id
HAVING SUM(amount) > 5
ORDER BY SUM(amount) DESC
LIMIT 15
) AS top_fifteen);
我收到以下错误:
relation "customer" does not exist
我不确定为什么我会在这里遇到这个异常,有人可以帮我解决这个问题吗?任何线索都受到高度赞赏。
【问题讨论】:
-
关系“客户”不存在意味着名为客户的表或视图在运行 SQL 的位置不存在。 - 检查您使用的是正确的数据库,客户表是否在相同的模式中(您可能需要 dbo.Customer)或者您在正确的服务器中运行查询 -(也区分大小写)例如客户与客户可以被认为是不同的
-
您是否在 dvdrental 数据库的上下文中运行此查询?
-
我正在使用正确的数据库和服务器,因为我能够正确运行其他查询。是的,我在 dvdrental db 的上下文中运行它。
-
您是在 GUI 工具(即 PgAdmin X)还是从命令行运行它?
标签: sql postgresql join subquery