写一个查询来查找每个国家的电影出租数量。仅显示至少租用了一部电影的国家。按字母顺序排列这些国家。
数据库:https://dev.mysql.com/doc/sakila/en/sakila-structure.html
下面是编写的代码
select e.country, count(a.rental_id) as rental_count
from rental a
left outer join customer b ON (a.customer_id=b.customer_id)
left outer join address c ON (b.address_id=c.address_id)
left outer join city d ON (c.city_id=d.city_id)
left outer join country e ON (d.country_id=e.country_id)
group by country
order by rental_count >=1
我的输出显示如下
***************************1. row***************************
Angola
4
***************************2. row***************************
American Samoa
4
***************************3. row***************************
Afghanistan
4
***************************4. row***************************
Algeria
2
***************************5. row***************************
New Zealand
1
如何将输出转换为字母顺序
5条答案
按热度按时间gr8qqesn1#
你可能很困惑
ORDER BY
以及HAVING
.仅显示至少租用了一部电影的国家。
这就是你要做的:
但要对聚合列进行筛选,应使用having子句:
但是,您可以通过使用
INNER JOIN
而不是LEFT OUTER JOIN
. 那么在这种情况下就不需要having子句了。ORDERBY子句用于按特定顺序获取结果。如果希望按字母顺序对国家进行排序,可以使用
gev0vcfq2#
我猜您是想按国家名称acc\ U account\ U transactions对结果进行排序,而不是按计数
smdnsysy3#
62o28rlo4#
9njqaruj5#