我有一個表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
如果按用戶分組,則每個用戶將獲得一行 - 這就是分組的目的,告訴你想要將結果分組到哪個級別。 –