0 0

mysql行列转置,求sql0

表结构如下:

 

create table date(day varchar(100) not null);
create table register(registerCount bigint not null);
create table login(loginCount bigint not null);

 原sql如下:select day,registerCount,loginCount

from(
    select day from date where day between 20120101 and 20120103)tmp
left join(
    select registerCount from register)r on tmp.day=r.day
left join(
    select loginCount from login)l on tmp.day=l.day
group by day;

  原结果集如下:

想更改为如下结果:

水平有限,请高手搭救,要详细sql

 

2012年8月30日 10:35

4个答案 按时间排序 按投票排序

0 0

采纳的答案


你这条sql 貌似还有问题吧 ,先参考这个 看看

表名:table
字段:user , id , score
数据如下:
+----------+----------+----------------+ 
|   user  |      id    |      score      |
|      u1    |      1     |      1.2          |
|      u1    |      2     |      2.3          |
|      u1    |      3     |      2.5          |
|      u2    |      1     |      3.4        |
|      u2   |      2     |      4.5          |
|      u2    |      3     |      2.6          |
+----------+----------+----------------+
需要得到如下的查询结果:
+----------+----------------------+----------------------+----------------------+
|   user  |      id_1_score      |      id_2_score      |      id_3_score      |
|      u1    |             1.2         |             2.3         |             2.5         |
|      u2    |             3.4         |             4.5         |             2.6         | 
+----------+----------------------+----------------------+----------------------+
 
SQL语句:
Select user,
sum(if(id=1, score,0)) as id_1_score,
sum(if(id=2, score,0)) as id_2_score,
sum(if(id=3, score,0)) as id_3_score
from table
group by user;

2012年8月30日 14:10
0 0

数据转置的问题,用Oracle的pivot关键字实现起来比较方便,但Mysql等其他数据库没有提供,硬拼的写法不容易理解和维护,也难以实现动态列的效果。这种结果集看起来象是为报表服务的,可以采用集算器来做,代码易懂。

A1=query(“select day,registerCount,loginCount from(…)”) //你的那句SQL
data=create(类别).record(["registerCount","loginCount"]) //只有一个字段的新表data
A3=for A1 //循环A1中的记录
B4=B3. registerCount & B3. loginCount //将当前记录的字段进行纵向拼接
B5= data=eval("data.derive(B4(#):"+ string(A3.day) +")") //给A2增加一个新字段。

集算器是结构化数据计算工具,可以通过JDBC与JAVA集成,可参考http://blog.sina.com.cn/s/blog_e4de31d00102v6gw.html

2014年11月18日 10:41
0 0

http://hdxiong.iteye.com/blog/836956

这是一个常见的行转列的例子,很直观,使用mysql的函数
case when then else end 楼主可以看一下。
个人觉得 你的那个行列转换似乎有些问题啊 你的第一列怎么显示啊 用sql能这样匹配两列吗?没得结论,楼主解决的话,晾一下。

2012年8月30日 16:31
0 0

需要在程序中拼,



3、行列转换
[姓名] [学科] [成绩]
张三  语文     80
张三  数学     90
李四  语文     85
李四  数学     92

select s.snum,s.sname,c.cname,sum(g.score)
from tbl_student s, tbl_course c, tbl_grade g
where s.snum = g.snum and c.cnum=g.cnum
group by s.snum, s.sname,c.cname

select sname,
  (select score from tbl_grade g, tbl_course c where c.cname='语文' and g.snum = s.snum and g.cnum = c.cnum) 语文,
  (select score from tbl_grade g, tbl_course c where c.cname='数学' and g.snum = s.snum and g.cnum = c.cnum)数学
from tbl_student s;


即需求是   列名是你的字段名    在程序里拼好字段 再进行查

2012年8月30日 12:16

相关推荐

    SQL 实现类似EXCEL行列转置

    SQL 实现类似 EXCEL 的行列转置功能 在数据库中,我们经常需要将数据从行转换为列,或者从列转换为行,这种操作称为行列转置。这种操作在 Excel 中非常常见,但是在 SQL 中实现类似的功能却需要一些技巧。下面我们...

    table 行列转置demo

    下面我们将详细探讨这些技术以及它们在行列转置中的应用。 首先,HTML是网页的基础结构语言,用于定义页面内容的布局和结构。在HTML中,`<table>`元素用于创建表格,包含`<tr>`(行)、`<th>`(表头单元格)和`<td>...

    SQL SERVER 转置功能

    两种方案实现SQL SERVER 转置功能1.拼字符串实现转置2.PIVOT

    Excel2021行列转置的操作方法.docx

    Excel 2021 行列转置的操作方法 Excel 2021 是一种功能强大的电子表格软件,能够帮助用户快速、高效地处理和分析数据。然而,很多用户对 Excel 2021 的操作还不是很熟悉,特别是在行列转置方面。行列转置是指将原始...

    WPS如何对表格进行行列转置.docx

    WPS 表格行列转置操作指南 WPS 是一个功能强大的office 软件,具有丰富的表格编辑功能,其中一项重要的功能就是表格行列转置操作。表格行列转置操作可以将已经建立的表格的行和列进行交换,以满足不同的需求和应用...

    Excel2021教程:表格数据行列转置.docx

    Excel 2021 教程:表格数据行列转置 在 Excel 中,表格数据的行列转置是一个非常重要的操作技巧。掌握了这个技巧,用户可以快速地将表格数据从行转换为列,或者从列转换为行,从而提高工作效率和数据处理能力。下面...

    SQL查询结果转置源码

    SQL查询结果转置源码 该资源的标题是"SQL查询结果转置源码",描述是"将查询结果进行二维转置后输出"。该资源的标签是"SQL查询结果转置源码"。下面我们将对该资源的标题和描述进行详细的解释。 首先,我们需要了解...

    几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维,单列转多列等

    几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维数组,单列转多列等。均含示例数据,如: 250B的文本测试数据,晶振微调后的频率测试数据等。 另外还有EXCEL的常用命令语句精选。

    数据库行列转置参考.pdf

    总的来说,数据库中的行列转置是通过SQL的聚合函数、CASE语句和动态SQL等工具实现的。在处理具有可变列名或动态数据结构时,动态SQL尤其有用。通过这种方式,我们可以灵活地适应各种数据模式,使数据更便于分析和...

    矩阵的转置,求秩,求方阵行列式,求方阵的逆矩阵

    3. **求行列式** (未完全给出代码): - 行列式的计算通常涉及对矩阵的变形处理,可能需要进一步的代码来完成。 4. **求逆矩阵** (未给出代码): - 逆矩阵的计算可以通过多种方法实现,如高斯-约旦消元法或伴随矩...

    二维数组行列转置.cpp

    二维数组行列转置.cpp

    sql server动态行转列.sql

    sqlserver 动态行专列 避免了数据列过多的时候大量的使用case when then...... 原数据 : UserName Subject Score Nick 语文 80 Nick 数学 90 Nick 英语 70 Nick 生物 85 Kent 语文 80 Kent 数学 90 Kent ...

    Excel中行列的转置.pdf

    在Excel中,行列转置是一项基础但非常实用的操作,它能够帮助用户快速调整数据布局,适应不同的分析需求。本文将详细解析如何在Excel 2013中进行数据的行列转置。 首先,理解转置的基本概念:转置是将表格中的行...

    sql.txt 存储过程行列转置(oracle)

    oracle 存储过程,实现列表数据行转置成列显示table效果;用游标的方式实现;

    几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维数组,单列转多列等

    本压缩包提供了几个关键的VBA示例,包括行列转置、表格数据到数组、一维数组转二维数组以及单列转多列等操作。下面将详细介绍这些知识点及其应用。 1. **行列转置**: 在Excel中,行列转置是将工作表中的数据从行...

    Transpose 数组行列转置的限制方式

    数组行列转置的核心是改变数组元素的存储方式,确保元素的位置对应于转置后的新坐标。例如,原数组中位于第一列的数据在转置后会出现在第一行,同时保持原有的顺序。 Excel中的Transpose函数是一个非常实用的功能,...

    矩阵转置偏导数

    矩阵转置偏导数,用于矩阵转置之后求偏导,对元素,对向量以及矩阵求偏导

    矩阵转置 求逆 相乘处理

    copy后可以直接运行,代码对矩阵中的转置 求逆 相乘做了详尽的处理,供需要的人使用

    C#实现DataGridView控件行列互换的方法

    4. 将转置后的DataTable设置为dgvRight的数据源,完成行列互换。 5. 处理RowsAdded事件,设置行号的显示。 6. 处理RowsRemoved事件,确保行号的更新。 这种方法对于需要展示数据的行列变换场景非常实用,能够帮助...

    矩阵运算_行列式,求逆,转置

    矩阵运算,包括求矩阵的行列式、求逆、转置等操作

Global site tag (gtag.js) - Google Analytics