首页 > 解决方案 > 如何在 T-SQL 中选择具有最大值的列?

问题描述

我正在尝试找到销售额最多的月份,我已经能够使用以下方式显示每个月的销售额:

SELECT Month(orderdate)  AS Month, 
       Year(orderdate)   AS Year, 
       Sum(salesorderid) AS Sales 
FROM   sales.salesorderheader 
GROUP  BY Month(orderdate), 
          Year(orderdate) 

这表明

这个结果

但我只想选择销量最高的月份。

标签: sqlsql-server

解决方案


如果我是正确的,您想打印具有最大销售额的单个结果这里“salesorderid”是该月的总销售额

  • 尝试添加 MAX
SELECT Month(orderdate)  AS Month, 
       Year(orderdate)   AS Year, 
       MAX(Sum(salesorderid)) AS Sales 
FROM   sales.salesorderheader 
GROUP  BY Month(orderdate), 
          Year(orderdate) 
  • 或者尝试使用 HAVING 子句
SELECT Month(orderdate)  AS Month, 
       Year(orderdate)   AS Year, 
       Sum(salesorderid) AS Sales 
FROM   sales.salesorderheader 
GROUP  BY Month(orderdate), 
          Year(orderdate) 
HAVING MAX(Sum(salesorderid))

因为 Sum(salesorderid) 是总销售额,这可能有效......


推荐阅读