查找已批准交易数量最多的列 sql 服务器

find column which have biggest number of approved transactions sql server

我需要找到批准交易数量最多的Filiyal
我试过这样:

select max(Filiyal)
from Transactions
where Status = 'Approved'

但它给了我错误的结果。我哪里错了?

这是我的 table:

Filiyal  |  Status
-------------------------
 Bank1   |  Approved
 Bank2   |  Not Approved
 Bank1   |  Approved
 Bank4   |  Approved

您可以尝试 order by desctop 1:

select top 1 Filiyal
     , count(*) as total_approved
from Transactions
where status = 'Approved'
group by Filiyal
order by total_approved desc 

P.S。不包括多个 Filiyal 可以具有相同数量的最大 total_approved.

的情况

您所写的查询将为您提供一组具有批准状态的银行中 Filiyal 的最大值(按字母顺序)。如果您要查找的是具有最多批准记录的 Filiyal,那么您需要有一些东西来计算批准的记录。

select top 1 Filiyal
from Transactions
where Status = 'Approved'
group by Filiyal
order by COUNT(Filiyal) desc

group by 子句 return 为每个 Filiyal 提供了一条记录,而 order by 按具有 'Approved' 作为状态的每个值的记录数对它们进行排序。 "top 1" 将只 return 具有最多批准记录的记录。如果出现平局,您将随机获得其中之一。