我收到一个错误消息,说输出与给定问题不匹配
Sakila DB:https://dev.mysql.com/doc/sakila/en/sakila-structure.html
下面是我的代码
SELECT c.name AS 'City'
, SUM(p.amount) AS 'Gross'
FROM category c
JOIN film_category fc
ON c.category_id = fc.category_id
JOIN inventory i
ON fc.film_id = i.film_id
JOIN rental r
ON i.inventory_id = r.inventory_id
JOIN payment p
ON r.rental_id = p.rental_id
GROUP
BY c.name
ORDER
BY Gross
LIMIT 1;
预期结果是find the city which generated the maximum revenue for the organisation.
请纠正我在哪里做错了或者有其他方法。
尝试一下:
选择城市 从城市 WHERE city_id =(选择city_id 从地址作为 以c的身份加入客户 开启a.address_id = c.address_id JOIN付款为p 开启c.customer_id = p.customer_id GROUP BY a.city_id 订购按总和(金额)DESC LIMIT 1);
尝试一下
SELECT City, Gross
FROM (SELECT c.name AS City, SUM(p.amount) AS Gross
FROM category c
JOIN film_category fc
ON (c.category_id=fc.category_id)
JOIN inventory i
ON (fc.film_id=i.film_id)
JOIN rental r
ON (i.inventory_id=r.inventory_id)
JOIN payment p
ON (r.rental_id=p.rental_id)
GROUP BY c.name
) A
ORDER BY GROSS DESC LIMIT 1;
谢谢您找出解决方案
使用升级;
select City
from city
inner join address
using (city_id)
inner join customer
using (address_id)
inner join payment
using (customer_id)
group by city
order by sum(amount) desc
limit 1;