Sql 建立记分牌-需要将两个不同推荐的值合并为一个总值

Sql 建立记分牌-需要将两个不同推荐的值合并为一个总值,sql,Sql,我正在制作一个简单的记分牌。它基本上是公司中每个引进外部用户的员工的汇总列表(“推荐”)。该列表只需根据推荐信的最后3个字母(=员工姓名首字母)进行分组即可。但是,其中一名员工使用两个不同的推荐,我需要选择这两个推荐并将其相加为一个总和(这样我就可以使用该值在记分板上进行排序) 正常转介如下所示:“%\u abc”。该员工有两个推荐人:“%\u xyz”和“RE%” 这是当前代码: SELECT RIGHT(Referral, 3) [Referral], COUNT(*) [Total

我正在制作一个简单的记分牌。它基本上是公司中每个引进外部用户的员工的汇总列表(“推荐”)。该列表只需根据推荐信的最后3个字母(=员工姓名首字母)进行分组即可。但是,其中一名员工使用两个不同的推荐,我需要选择这两个推荐并将其相加为一个总和(这样我就可以使用该值在记分板上进行排序)

正常转介如下所示:“%\u abc”。该员工有两个推荐人:“%\u xyz”和“RE%”

这是当前代码:

SELECT
    RIGHT(Referral, 3) [Referral], COUNT(*) [Total]
FROM TableName
WHERE
    CAST(Created AS DATE) = CAST(DATEADD(DAY, -1, GETDATE()) AS DATE)
    AND
    (
        Referral LIKE '%_abc'
        OR
        Referral LIKE '%_xyz'
        ...
    )
GROUP BY RIGHT(Referral, 3)
ORDER BY [Total] DESC

我用下面的代码解决了我的问题。欢迎提供任何优化建议

SELECT Referral, SUM(Total) AS Total FROM
(
    SELECT RIGHT(Referral, 3) [Referral], COUNT(*) [Total]
    FROM TableName
    WHERE
           CAST(Created AS DATE) = CAST(GETDATE() AS DATE)
        AND
        (
            Referral LIKE '%_abc'
            OR
            Referral LIKE '%_xyz'
            ...
        )
    GROUP BY RIGHT(Referral, 3)
    UNION ALL
    SELECT 'xyz' AS Referral, COUNT(*) [Total]
    FROM TableName
    WHERE
        CAST(Created AS DATE) = CAST(GETDATE() AS DATE)
        AND
        LEFT(Referral, 2) = 'RE'
) t
GROUP BY t.Referral
ORDER BY Total DESC