对子查询结果进行分组

select top 100 percent p.* from (SELECT a.serviceNo,a.policyNo,a.applicationNo,a.custNo,a.credentialsNo,a.STATUS,a.fbResult,a.fbType,a.contactInfo,a.link,a.valid,a.createDate,a.createTime,a.modifyDate,a.modifyTime,f.CODE,g.createTime AS CT FROM LCCOLService a LEFT JOIN LCCPolicyInfo e ON e.ApplicationNo=a.applicationNo LEFT JOIN LCCOLMapping f ON f.CodeType='channel' AND f.MatchCode=e.BranchType LEFT JOIN LCCOLDistinguish g ON a.link=g.link WHERE a.valid='Y' AND a.fbResult NOT IN ('OL2','OL7') AND a.fbType='sms' AND a.createDate='2021-07-22' AND g.source !='two') p ORDER BY p.CT
可以查出一些数据,现在我想把他作为一个子查询,对这个子查询结果以link分组,该怎么解决,
直接写的话会报Column 'q.serviceNo' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

是后面直接跟p.link会报错吗