首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将SQL行标题转到第一列。

将SQL行标题转到第一列。
EN

Stack Overflow用户
提问于 2018-11-13 21:50:32
回答 1查看 26关注 0票数 0

下面查询结果的最短、最快、最简单的转换方法是什么?我要在第一栏中显示0-3和3-6。对不起,如果我不伸出援手的话,这件事会困扰我好几天。提前谢谢。

代码语言:javascript
运行
复制
SELECT SUM (CASE WHEN CMAPR BETWEEN 0 AND 3 THEN 1 ELSE 0 END) AS [0-3],
       SUM (CASE WHEN CMAPR BETWEEN 3.01 AND 6 THEN 1 ELSE 0 END) AS [3-6]
FROM TBL

当前结果:

EN

回答 1

Stack Overflow用户

发布于 2018-11-13 21:53:22

使用聚合:

代码语言:javascript
运行
复制
SELECT (CASE WHEN CMAPR >= 0 AND CMAPR <=3 THEN '0-3'
             WHEN CMAPR <= 6 THEN '3-6'
             ELSE 'Other'
        END) AS grp, COUNT(*)
FROM tbl
GROUP BY (CASE WHEN CMAPR >= 0 AND CMAPR <=3 THEN '0-3'
               WHEN CMAPR <= 6 THEN '3-6'
               ELSE 'Other'
          END);

唯一的缺点是,如果一个组没有行,它就不会返回。

只需执行以下操作即可解除查询的支点:

代码语言:javascript
运行
复制
SELECT v.*
FROM (SELECT SUM (CASE WHEN CMAPR BETWEEN 0 AND 3 THEN 1 ELSE 0 END) AS [0-3],
             SUM (CASE WHEN CMAPR BETWEEN 3.01 AND 6 THEN 1 ELSE 0 END) AS [3-6]
      FROM TBL
     ) x CROSS APPLY
     (VALUES ('[0-3]', [0-3]), ('[3-6]', [3-6])) v(which, val);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53290040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档