Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment ajouter un type de données XML dans une clause GROUP BY ?

Vous pouvez faire l'agrégation dans un CTE puis rejoindre celui-ci

WITH Children(Cnt, ParentId)
     AS (SELECT COUNT(*),
                ParentId
         FROM   dbo.Post
         GROUP  BY ParentId)
SELECT P.PostId,
       P.[Body],
       ISNULL(Cnt, 0) AS Cnt
FROM   dbo.Post P
       LEFT JOIN Children /*To include childless posts*/
         ON Children.ParentId = P.PostId
ORDER  BY P.PostId