`

行转列

阅读更多
select product_id,product_name,product_type,area,sum(num) as total,
       (max(case product_state when '1' then num else 0 end)) as a,
       (max(case product_state when '2' then num else 0 end)) as b,
       (max(case product_state when '3' then num else 0 end)) as c,
       (max(case product_state when '4' then num else 0 end)) as d
from
   (
       select product_id,product_name,product_type,area,product_state,count(product_state)

as num from log_visible_product_tab
       group by product_id,product_name,product_type,area,product_state
   )
group by product_id,product_name,product_type,area








select product_id, count(product_id) as total,
(max(case product_state     
when '1' then num 
else 0    
end)) as a,
(max(case product_state     
when '2' then num 
else 0    
end)) as b,
(max(case product_state     
when '3' then num 
else 0    
end)) as c,
(max(case product_state     
when '4' then num 
else 0    
end)) as d
from
(
select product_id,product_state,count(product_state) as num from log_visible_product_tab
group by product_id,product_state
)
group by product_id

//行别列

create table wenjyTest(姓名 varchar(10) , 课程 varchar(10) , 分数 int)

insert into wenjyTest values('张三' , '语文' , 74);
insert into wenjyTest values('张三' , '数学' , 83);
insert into wenjyTest values('张三' , '物理' , 93);
insert into wenjyTest values('李四' , '语文' , 74);
insert into wenjyTest values('李四' , '数学' , 84);
insert into wenjyTest values('李四' , '物理' , 94);



select 姓名 as 姓名 ,
  max(case 课程 when '语文' then 分数 else 0 end) 语文,
  max(case 课程 when '数学' then 分数 else 0 end) 数学,
  max(case 课程 when '物理' then 分数 else 0 end) 物理
from wenjyTest
group by 姓名
分享到:
评论

相关推荐

    access行转列示例

    “行转列”是将数据表中的一行数据转换为多列显示,反之,“列转行”则是将一列数据转化为多行展示。这两种操作在处理宽表和长表之间的转换时特别有用,例如,当需要将多个具有相同属性的数据项合并到同一列或者将...

    oracle动态行转列

    其中,“行转列”(Pivot)是一种常见的数据转换需求,尤其在数据分析和报告生成时尤为重要。本文将深入探讨如何通过Oracle中的存储过程实现动态“行转列”,并结合给定文件的信息,详细解析其工作原理、优点及应用...

    C# List实现行转列的通用方案

    C# List实现行转列的通用方案 本文将介绍使用C# List实现行转列的通用方案,通过使用System.Linq.Dynamic动态LINQ库来完成行转列功能,并且介绍了过滤功能,具有很好的参考价值。 1. 行转列的需求分析 在报表统计...

    kettle行转列详解

    在数据处理过程中,有时我们需要将数据从行格式转换为列格式,或者反之,这被称为“行转列”或“列转行”。在Kettle中实现这一功能,可以通过“Row to Column”或“Column to Row”步骤来完成。 在本文中,我们将...

    java行转列的例子

    "java行转列"这个主题是数据处理中的一个常见需求,尤其是在数据分析、报表生成或数据显示时。当我们从数据库中获取数据,有时会遇到单个字段的数据需要在用户界面上以列的形式展示,这时就需要进行数据的行列转换。...

    行转列sql实例

    行转列sql实例行转列sql实例行转列sql实例行转列sql实例行转列sql实例

    Linq动态查询、行转列

    在数据分析中,行转列是常见的需求,例如,将多行数据转换为单行,每列代表一个特定的属性。在.NET中,我们可以使用`DataTable`对象配合LINQ来实现这一转换。以下是一个简单的示例: ```csharp var groups = data....

    Oracle行转列之pivot

    这个例子中,pivot_clause对sal列求和,pivot_for_clause指定了deptno作为要转换的列,而pivot_in_clause定义了deptno的值范围,从而确定了转换列的数量。 此外,PIVOT操作还隐含地执行了GROUP BY操作,它使用了...

    Sql语句实现表的行列转换,行转列,列转行

    ### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...

    sql动态行转列 存储过程

    在SQL数据库操作中,"行转列"是一种常见的数据转换需求,它将表格中的多行数据转换为单列显示,通常用于数据汇总和分析。在本案例中,我们主要探讨如何使用SQL语句,尤其是存储过程,来实现动态的行转列功能。这在...

    Oracle行转列(不定列)

    其中,"行转列(不定列)"是数据库查询中的一种常见需求,尤其是在数据分析和报表生成时。本篇文章将详细探讨Oracle如何实现行转列为列的过程,以及在面对不确定列数时的解决方案。 在传统的SQL查询中,数据通常是...

    sql利用union all行转列

    其中,“行转列”(Pivot)是一种常见的数据转换方式,它能够将数据表中的某列或多列值转换为多列的形式展现,从而方便进一步的数据分析与展示。本文主要介绍一种利用SQL语句中的`UNION ALL`来实现“行转列”的方法...

    sql列转行以及行转列的通用存储过程

    根据提供的标题、描述、标签及部分内容,本文将详细介绍SQL中实现列转行及行转列通用存储过程的具体方法,特别是针对Microsoft SQL Server版本的应用场景。 ### 标题解析:SQL列转行及行转列的通用存储过程 该标题...

    mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示

    MySQL 行转列是一种常用的数据处理操作,用于将同一列下的不同内容的几行数据转换成几列显示。例如,我们有一个成绩表 tb_score,其中包含 userid、subject 和 score 三个字段。我们可以使用 CASE WHEN 语句或 IF ...

    DB2 SQL 实现行转列,列转行

    DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列

    C#行转列的实现

    在c#后台实现 行转列的显示功能,这样就是可以不借助sql数据库的查询分析器功能也可以实现行转列功能的实现了

    Sql,oracle数据表行转列问题

    SQL行转列问题是指将行记录转换为列记录的操作。本文将详细讲解SQL行转列问题的解决方案,并提供了一个具体的实例来帮助读者更好地理解该问题。 问题描述 假设我们有一个学生成绩表tb,包含姓名、课程和分数三个...

    oracle行转列较精典的解决方案

    在Oracle数据库管理与开发过程中,经常会遇到需要将数据表中的行数据转换为列数据的情况,这种操作被称为“行转列”或者“行列转换”。行列转换是数据分析、报表生成等场景中非常常见的需求之一。本文将详细介绍几种...

    行转列、列名转行

    行转列主要是将数据库表中的多行数据转换为单行的多个列,这在统计和报表制作时非常有用。SQL Server中可以使用PIVOT操作来实现。假设我们有一个销售数据表,包含产品ID、销售日期和销售额三列,我们想按月份汇总每...

Global site tag (gtag.js) - Google Analytics