Our variant has counter with users and subgroups and pre-Windows 2000 groups handler:
Select Top 1000000 Coalesce(tblADGroups.Name, tblADObjects.sAMAccountName,
'unknown') hyperlink_name_Group,
'http://ls/report.aspx?det=web50usersbyadgroup&title=Active%20Directory%20group:%20'
+ Coalesce(tblADGroups.Name, tblADObjects.sAMAccountName, 'unknown')
+ '&@id=' + Cast(tblADGroups.ADObjectID As nvarchar) As hyperlink_Group,
tblADGroups.Description,
tblADGroups.LastChanged,
Count(tblADMembership.ChildAdObjectID) counter
From tblADGroups
Inner Join tblADObjects On tblADObjects.ADObjectID = tblADGroups.ADObjectID
Inner Join tblADMembership On tblADObjects.ADObjectID =
tblADMembership.ParentAdObjectID
Group By tblADGroups.Description,
tblADGroups.LastChanged,
tblADObjects.sAMAccountName,
tblADGroups.Name,
tblADGroups.ADObjectID
Order By hyperlink_name_Group