我正在尝试将所有两个查询联合起来,其中一个具有group by和另一个只是一个没有表的硬编码值。
SELECT 'All' Category
UNION
SELECT Category as Category
FROM WV_BlogData
GROUP BY Category
ORDER BY COUNT(BlogDataID) desc
我收到以下错误,如何摆脱这个?
消息207,级别16,状态1,行50无效的列名称'BlogDataID'。 Msg 104,Level 16,State 1,Line 50 ORDER BY项目必须出现在 如果语句包含UNION,INTERSECT或EXCEPT,则选择列表 操作
答案 0 :(得分: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