用另一列选择最大数量

Posted

技术标签:

【中文标题】用另一列选择最大数量【英文标题】:Select Max number with another column 【发布时间】:2019-04-08 13:55:21 【问题描述】:

我正在编写一个简单的查询来获取具有 MAX ADDRESS_SEQ_NUM 的 VENDOR_ID,以便获得以下输出:

VENDOR_ID     ADDRESS_SEQ_NUM
76109A        81

问题是,当我编写以下 SQL 时,我会返回每个 VENDOR_ID 和它自己的最大 ADDRESS_SEQ_NUM,而我只想要整个表中的 VENDOR_ID 和最大 ADDRESS_SEQ_NUM。

SELECT VENDOR_ID, MAX(ADDRESS_SEQ_NUM)
FROM PS_VNDR_ADDR_SCROL
GROUP BY VENDOR_ID

【问题讨论】:

***.com/questions/8387587/…的可能重复 Selecting a Record With MAX Value的可能重复 【参考方案1】:

ORDER BY ADDRESS_SEQ_NUM 降序。使用TOP 1 仅获取第一行,即具有最高 ADDRESS_SEQ_NUM 值的行。

SELECT TOP 1 VENDOR_ID, ADDRESS_SEQ_NUM
FROM PS_VNDR_ADDR_SCROL
ORDER BY ADDRESS_SEQ_NUM DESC;

【讨论】:

太棒了!所以不需要Max函数?是否可以使用 Max 函数编写它并且仍然获得两列和最大行? @JBinson88 是的,您也可以这样做,但是如果您只需要获得一个 vendor_id,那么 jaralh 方法是您的最佳方法。【参考方案2】:

你必须做一个子选择

SELECT VENDOR_ID, ADDRESS_SEQ_NUM FROM PS_VNDR_ADDR_SCROL WHERE ADDRESS_SEQ_NUM = (SELECT MAX(ADDRESS_SEQ_NUM) FROM PS_VNDR_ADDR_SCROL)

【讨论】:

以上是关于用另一列选择最大数量的主要内容,如果未能解决你的问题,请参考以下文章

为另一列中的每个值选择一列中的最大值[重复]

在按两列分组时选择最大值,并在另一列上排序

SQL选择表中具有最大值的行,按另一列排序

SQL group by:选择另一列有其最小值/最大值的值

调整相对于 2 列的选择以在一列中返回最大值以用于另一列中的重复条目

Laravel - 查询构建器以选择具有唯一列值的多行(具有另一列的最大值)