【问题标题】: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

【问题讨论】:

标签: sql sql-server sql-server-2014


【解决方案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)

【讨论】:

    猜你喜欢
    • 2020-03-02
    • 2018-08-25
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    相关资源
    最近更新 更多