sql - SQL 按县显示州的最大收入并显示县
问题描述
我正在寻找对此数据库的查询以返回预期结果。基本上是州,然后是收入最高的县,然后显示该收入。
到目前为止,这就是我所拥有的:
SELECT a.STATE, a.COUNTY, b.MAX_INCOME
FROM table a
JOIN
(
SELECT STATE, MAX(INCOME) MAX_INCOME
FROM table
GROUP BY 1
) AS b
ON b.STATE = a.STATE
WHERE b.MAX_INCOME= a.INCOME;
由于平局,它为 IL 返回多个。我应该只做SELECT DISTINCT吗?
数据库:
县 | 状态 | 收入 |
---|---|---|
厨师 | 伊利诺伊州 | 1000 |
湖 | 伊利诺伊州 | 1000 |
复制页 | 伊利诺伊州 | 500 |
碧玉 | 在 | 4000 |
格林 | 在 | 1000 |
预期结果:
状态 | 县 | 收入 |
---|---|---|
伊利诺伊州 | 厨师 | 1000 |
在 | 碧玉 | 4000 |
谢谢你的帮助!
解决方案
我没有安装 Snowflake 来测试它,但看起来“合格”是您正在寻找的:
那里使用的例子是:
SELECT
col1,
col2,
col3,
col4
FROM table
QUALIFY ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col1, col2) = 1
因此,基于子查询的排序(即,如果要按字母顺序显示第一个,请确保对其中的县进行升序排序),您只能显示其中的第一行。
推荐阅读
- asp.net - 在 asp.net 中使用 No Refresh Page 和 fileupload 更改 DropDownList 列表
- javascript - 如何在 DOM 中不可用时操作 localStorage 项目
- python - 向 Python 字典添加重复键(“Two Sum”问题)
- excel - 使用名称包含特定单词的 VBA 取消隐藏工作表名称
- sqlite - 如何检查隐藏的损坏
- mysql - 内部联接从子表中的外键获取“名称”属性
- r - R- 维恩图的三个向量(或数据框列)中每一个的唯一和常见项目
- spring - 为什么@Cacheable 在第二次调用方法后不起作用
- python-3.x - 将数据发布到 Google 表格中的新行(Python)
- c# - System.Net.Mail - 无法向用户发送电子邮件 - 收到“交易失败:服务器响应为 [此处的域名]”错误消息