sql - 这可以是嵌套查询吗
问题描述
在加拿大和美国都有海岸线的五大湖中,海岸线的名称和长度是什么,按美国海岸线的降序排列。
我使用的表格有三列,IN_COUNTRY
(湖泊在哪里,美国或加拿大),ON_LAKE
(湖泊的名称,如密歇根湖)和SHORELINE
(每个国家的海岸线长度)
我已经尝试过下面列出的 SQL,但我无法SHORELINE
在美国按长度排序。如您所见,我现在只能通过两国海岸线的组合来订购它们。
SELECT ON_LAKE, sum(SHORELINE) AS SHORELINE
FROM SHORE
GROUP BY ON_LAKE
HAVING count(IN_COUNTRY) > 1
ORDER BY SHORELINE DESC
我认为嵌套 SQL 可能会有所帮助,但已经在这里停留了一段时间
图片:
解决方案
尝试这样的事情:
SELECT ON_LAKE, sum(SHORELINE) AS SHORELINE
FROM SHORE
GROUP BY ON_LAKE
HAVING count(IN_COUNTRY) > 1
ORDER BY sum(CASE WHEN IN_COUNTRY='United States' THEN SHORELINE ELSE 0 END) DESC
我只更改了 ORDER BY 子句来计算美国的海岸长度。
推荐阅读
- macos - SwiftUI 对悬停事件不是很敏感
- javascript - 在shopify主题的产品页面上传图片字段
- batch-file - 如何使用正则表达式在 .txt 文件中查找字符串?
- python - 在 Jupyter 笔记本中调整图像的显示大小
- osgi - 在 Apache Felix 运行时设置 SSL 密钥库
- swift - 如何在 Catalyst 应用程序中将搜索栏放入 NSToolbar?
- ruby - 如何在 Ruby 中的标题元素之间进行选择
- sparql - SPARQL 语法更正
- sharepoint - MS Flow SharePoint“授予访问权限”操作因“项目不存在”而失败
- laravel - 向 Laravel 中的所有用户发送每周电子邮件的方法