首页 > 解决方案 > 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

谢谢你的帮助!

标签: sql

解决方案


我没有安装 Snowflake 来测试它,但看起来“合格”是您正在寻找的:

https://community.snowflake.com/s/question/0D50Z00008NrIYuSAN/whats-the-equivalent-of-distinct-on-in-snowflake-

那里使用的例子是:

SELECT
  col1,
  col2,
  col3,
  col4
FROM table
QUALIFY ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col1, col2) = 1

因此,基于子查询的排序(即,如果要按字母顺序显示第一个,请确保对其中的县进行升序排序),您只能显示其中的第一行。


推荐阅读