查找具有最大批准事务数sql server的列

时间:2015-05-06 22:29:42

标签: sql sql-server max

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

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

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

这是我的表:

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

2 个答案:

答案 0 :(得分:1)

您所写的查询将从具有已批准状态的银行集合中为您提供最大的Filiyal值(按字母顺序)。如果你想找到的是具有最多批准记录的Filiyal,那么你需要有一些能够计算得到批准的记录。

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

group by子句通过按每个Filiyal和#39作为一种身份。 "前1"将仅返回具有最多批准记录的记录。如果出现平局,你会随机获得其中一个。

答案 1 :(得分:0)

您可以尝试使用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数量,则不会涵盖案例。