查询的时候将多行和并为一行的多列

问题描述:

 开发过程中往往查询出来的内容是多列,但是因为框架中的grid的原因需要将这多行设置为一行中的多列,思路是通过case when转换将多行转换为一行中的多列。

表结构和表结构如下:



统计各个类型的数量,将其放入echarts或grid中,一般的根据类型统计的SQL如下:

select t.type,sum(1) num from test t group by t.type order by t.type
查询结果如下:

可见途中是一类一行如果将一行转化为一行中的一列:

需求效果图如下:


通过case   when 实现转换,SQL如下:

select sum(case
             when type = 'A' then
              num
             else
              0
           end) A,
       sum(case
             when type = 'B' then
              num
             else
              0
           end) B,
       sum(case
             when type = 'C' then
              num
             else
              0
           end) C,
       sum(case
             when type = 'D' then
              num
             else
              0
           end) D
  from (select t.type, sum(1) num
          from test t
         group by t.type
         order by t.type)



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以使用Excel中的转置功能来实现多行多列转置成一行多列。具体步骤如下: 1. 选择需要转置的数据区域,右键点击选择“复制”或者按下“Ctrl+C”。 2. 在需要存放转置结果的区域中,右键点击选择“转置选项”。 3. 在转置选项中选择“数值”并勾选“转置”选项,点击“确定”。 4. 完成操作后,您会发现所选区域已经转置成一行多列的形式了。 希望我的回答对您有所帮助。 ### 回答2: 在Excel中,可以使用“转置”功能将多行多列数据转置为一行多列。 步骤如下: 1. 打开包含要转置的数据的Excel文件。 2. 选择要转置的数据范围。确保选中的范围不包含任何空行或列,并且数据只在选定的范围内。 3. 复制选定的数据范围(使用快捷键Ctrl+C或右键点击并选择“复制”)。 4. 选择要转置的位置。确保选择的区域有足够的空间来容纳转置后的数据。 5. 右键点击要转置的位置,并选择“转置”选项。转置后的数据将粘贴在该位置。 6. 当数据成功转置时,将转置前的数据留在原位置,或者选择删除原始数据,并在转置完成后保存文件。 通过以上步骤,你就可以将多行多列的数据转置成一行多列的形式。请注意,转置后的数据可能需要重新调整格式和布局,以便更好地满足需求。 ### 回答3: 在Excel中,如果需要将多行多列的数据转置成一行多列,可以采用以下步骤: 1. 选中要转置的多行多列的数据区域。 2. 复制选中的数据区域,可以使用快捷键Ctrl+C。 3. 选择一个新的单元格作为数据转置后的起始位置。 4. 在新的单元格中右键点击,然后选择“选择性粘贴”或者直接使用快捷键Ctrl+Alt+V。 5. 在弹出的“选择性粘贴”对话框中,勾选“转置”选项。 6. 点击“确定”按钮,完成数据转置。 以上步骤即可将多行多列的数据转置成一行多列。请注意,转置后的数据区域最好是空白的,以免覆盖原有的数据。另外,转置操作可能会导致数据格式的变化,例如日期、时间、小数等,需要注意数据是否保持原有的格式和准确性。 希望以上回答对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值