SQL查询MAX(count(*))

时间:2017-06-15 16:46:30

标签: sql sql-server

我需要获取IdPasajero以及从Boletos表的列表中购买的最大票数,其中包含IdPasajero所购买的所有票证的记录。

任何想法?

我的想法:

SELECT MAX(contador) FROM (
    SELECT IdPasajero, count(idPasajero) contador 
    FROM Boleto
    GROUP BY IdPasajero
) T;

这仅返回乘客或" IdPasajero"

所购买的最高金额

2 个答案:

答案 0 :(得分:6)

使用ORDER BYTOP

SELECT TOP (1) IdPasajero, count(idPasajero) as contador
FROM Boleto
GROUP BY IdPasajero
ORDER BY contador DESC;

如果您想要关系中的所有值,请使用TOP (1) WITH TIES

答案 1 :(得分:0)

试试这个:

with NbID as (
SELECT IdPasajero, count(IdPasajero) as Nb 
FROM Boleto
group by IdPasajero
),

Maxi as (
select max(Nb) from MaxiID
)
select NbID.* from NbID inner join Maxi on NbID.Nb=Maxi.MaxiID