2016-11-28 37 views
1

我想联合所有两个查询,哪一个有一个组和另一个只是一个没有表的硬编码值。同时使用工会组

SELECT 'All' Category 
UNION 
SELECT Category as Category 
FROM WV_BlogData 
GROUP BY Category 
ORDER BY COUNT(BlogDataID) desc 

我得到以下错误,如何摆脱这种情况?

消息207,级别16,状态1,行50无效的列名称'BlogDataID'。 消息104,级别16,状态1,行50如果语句包含UNION,INTERSECT或EXCEPT 运算符,则ORDER BY项目必须出现在 选择列表中。

+2

如果我不是错误的顺序由列应该是选择列列表 –

+0

的一部分,至少当UNION(或类似)。 – jarlh

回答

5

环绕你UNION了在派生表:

select Category 
from 
(
    SELECT 'All' Category, 0 as cnt 
    UNION 
    SELECT Category as Category, COUNT(BlogDataID) as cnt 
    FROM WV_BlogData 
    GROUP BY Category 
) dt 
ORDER BY cnt desc