使用联合时分组
Posted
技术标签:
【中文标题】使用联合时分组【英文标题】:Group by while using union 【发布时间】:2016-11-28 09:48:02 【问题描述】:我正在尝试合并所有两个查询,其中一个具有分组依据,另一个只是没有表的硬编码值。
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,则选择列表 运算符。
【问题讨论】:
如果我没有错,按列排序应该是选择列列表的一部分 至少在 UNION(或类似)时。 【参考方案1】:将您的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
【讨论】:
以上是关于使用联合时分组的主要内容,如果未能解决你的问题,请参考以下文章
如何修复特征联合和管道中的元组对象错误(使用 sklearn 时)?
联合使用PrediXcanMetaXcan基于GWAS结果预测靶基因及特异性组织的表达(又名全转录组分析Transcriptome-Wide AnalysisS)