簡體   English   中英

如何在 T-SQL 中使用最大值 Select 列?

[英]How to Select Column With Max Value In T-SQL?

我正在嘗試找到銷售額最多的月份,我已經能夠使用以下方式顯示每個月的銷售額:

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

這表明

這個結果

但我只想 select 銷量最高的月份。

如果我是正確的,您想打印具有最大銷售額的單個結果這里“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) 是總銷售額,這可能有效......

您必須先按year group ,然后按month分組。 然后使用count()而不是sum() (似乎你的列是 SalesOrderID),但如果你試圖獲得sum of sales它應該類似於sum(salesamount) 還要更改您的column aliases ,這些是sql keywords

select month(OrderDate) as oMonth, year(OrderDate) as oYear
    , count(1) as SalesCount
from SalesOrderHeader
group by year(OrderDate), month(OrderDate)

獲得most number of sales

select top 1 * from (
    select month(OrderDate) as oMonth, year(OrderDate) as oYear
        , count(1) as SalesCount
    from SalesOrderHeader
    group by year(OrderDate), month(OrderDate)) t1
order by t1.SalesCount desc

只需使用top (1)

SELECT TOP (1) Month(orderdate)  AS Month, 
       Year(orderdate)   AS Year, 
       Sum(salesorderid) AS Sales 
FROM sales.salesorderheader 
GROUP BY Month(orderdate), Year(orderdate) 
ORDER BY Sales DESC;

你可以試試

  1. 使用ORDER BY "字段名" DESC
  2. 如果字段“ salesorderid ”不在類型編號中,則ORDER BY function 無法運行。 所以你可以改變之前,使用CAST("field name" AS Decimal)

檢查下面的代碼片段

SELECT Month(a.orderdate)  AS Month, 
       Year(a.orderdate)   AS Year, 
       Sum(a.salesorderid) AS Sales                                               
FROM   sales.salesorderheader  a
GROUP BY Month(a.orderdate),Year(a.orderdate) 
ORDER BY CAST(a.Sum(a.salesorderid), AS Decimal) DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM