Sql server TSQL如何按文字分组?

Sql server TSQL如何按文字分组?,sql-server,tsql,group-by,Sql Server,Tsql,Group By,我将这个问题简化为一个非常简单的形式: SELECT 'A' AS [Literal] UNION SELECT 'B' AS [Literal] GROUP BY [Literal] 我得到的信息是: 味精207,16级,状态1,第7行 列名“Literal”无效 我试过了,结果也一样: SELECT t.literal FROM (SELECT 'A' AS [Literal]) t UNION SELECT 'B' GROUP BY [Literal] 如果要按联合分组,则需要

我将这个问题简化为一个非常简单的形式:

SELECT
'A' AS [Literal]
UNION 
SELECT
'B' AS [Literal]
GROUP BY
[Literal]
我得到的信息是:

味精207,16级,状态1,第7行 列名“Literal”无效

我试过了,结果也一样:

SELECT
t.literal FROM 
(SELECT 'A' AS [Literal]) t
UNION 
SELECT
'B' 
GROUP BY
[Literal]

如果要按
联合
分组,则需要一个派生表:

SELECT X.[Literal], [Count] = COUNT(*)
FROM(
    SELECT [Literal] = 'A'
    UNION ALL 
    SELECT [Literal] = 'B'
) X
GROUP BY X.[Literal]
您可以使用cte

;WITH cte AS (
 SELECT
 'A' AS [Literal]
 UNION 
 SELECT
 'B' AS [Literal])
SELECT [Literal]
FROM cte
GROUP BY [Literal]

你有其他栏目吗,还是只有这一个?没有,这是错误的。这是OP曾经做过的,但不起作用。
groupby
仅应用于第二个Select。如果第一个是错误的,您可以简单地将其编辑掉。我认为这样做显然是站不住脚的…:嗯,编辑不仅仅是为了添加新内容和为旧内容道歉谢谢,这就是票。