编写查询以查找为该组织带来最大收入的城市

问题描述 投票:-1回答:3

我收到一个错误消息,说输出与给定问题不匹配

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.

请纠正我在哪里做错了或者有其他方法。

mysql sql inner-join
3个回答
0
投票

尝试一下:

选择城市 从城市 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);


0
投票

尝试一下

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;

0
投票

谢谢您找出解决方案

使用升级;

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;
© www.soinside.com 2019 - 2024. All rights reserved.