我有一个表license_Usage凡就像一个日志许可证的使用情况在一天内返回最大值从SQL选择
ID User license date
1 1 A 22/2/2015
2 1 A 23/2/2015
3 1 B 22/2/2015
4 2 A 22/2/2015
在哪里我想算每个用户有多少许可证一天,结果建议立即进行删除样子:
QuantityOfLicenses User date
2 1 22/2/2015
1 2 22/2/2015
对于我做了以下查询:
select count(license) as [Quantity of licenses],[user],[date]
From license_Usage
where date = '22/2/2015'
Group by [date], [user]
WHI CH作品,但知道我想知道哪些用户已使用数量最多的许可证,为我做了以下查询:
select MAX(result.[Quantity of licenses])
From (
select count(license) as [Quantity of licenses],[user],[date]
From license_Usage
Group by [date], [user]
) as result
,并返回的2最大值,但是当我想知道哪些用户已经使用2个执照,我尝试此查询没有成功:如果您需要有一个获取该获取所有具有最大的行
select top 1 *
From (
select count(license) as Quantity,[user],[date]
From license_Usage
Group by [date], [user]
) as result
order by Quantity desc
:
select result.user, MAX(result.[Quantity of licenses])
From (
select count(license) as [Quantity of licenses],[user],[date]
From license_Usage
Group by [date], [user]
) as result
Group by result.user
这工作,但我想知道为什么后续产生diferent值 选择的结果,MAX(许可证result.Quantity) 从( SELECT COUNT(许可)作为Quantiti y许可证,用户,日期 From license_Usage 按日期分组,用户 )作为结果 按结果分组。用户 – Eduardox23
如果按用户分组,则每个用户将获得一行 - 这就是分组的目的,告诉你想要将结果分组到哪个级别。 –