sql - 在单列上不同,但根据未选择的条件从同一个表返回一行

标签 sql sql-server sql-server-2005 distinct-values

我是 Sql 服务器的新手,我的 MySql 背景只是一般,没有什么特别的。

我有一个包含 5 列的表格:

Neighbrhood
City
State
zip_code
zip_percent

查询的目标: 提供城市内的社区列表(唯一)以及与最高 zip_percent 对应的邮政编码。因此返回 2 列:

Neighborhood
zip_code

由于具有最高的覆盖百分比或“zip_percent”,邮政编码是该社区的“最具代表性”

问题:由于一个社区可能会重叠多个邮政编码,因此我在区分它们时遇到了问题。 unique 子句阻止我按未选择的列进行排序。

不知何故,我认为我需要使用这个子查询并在 zip_percent 列上使用 MAX 命令将其连接回原始表。我只是无法将所有的部分拼凑起来。我真的很感激任何帮助。

git.github.com/469915

您可以在此处查看“Arbor Heights”和“Rainer Beach”等社区的问题示例

最佳答案

尝试使用 ROW_NUMBER:

SELECT Neighborhood, zip_code
FROM (
    SELECT 
        Neighborhood, zip_code,
        ROW_NUMBER() OVER (PARTITION BY Neighborhood
                           ORDER BY zippercent DESC) AS rn
    FROM neighbourhoods_zip
) AS T1
WHERE rn = 1
Neighborhood  zip_code
Adams         98107   
Alki          98116   
ArborHeights  98146   
Atlantic      98144   
Belltown      98121   
BitterLake    98133   
Briarcliff    98199   
etc...

关于sql - 在单列上不同,但根据未选择的条件从同一个表返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3215989/

相关文章:

.net - RDL 2008 架构和 RDL 2010 架构有什么区别?功能明智

sql-server - 如何获取美国邮政编码的边界坐标?

sql-server - 更新查询被用户取消

sql-server - 在 SQL Server 2005 中,我可以在不设置表属性的情况下执行级联删除吗?

python - 为什么我无法在此嵌套字典中创建其他键?

sql - 在转换之前验证日期,也就是。 ISDATE() 等效

sql-server - 在 SQL Server 中获取从今天起最近 30 天的记录

sql - SQL Server中如何确定表的主键?

php - 记录根据表数据列出不正确的结果 Mysql

sql - 如何从 T-SQL 中的表中选择前 N 行?