今天做个后台服务,有个需求是批量生成一批表的数据,如果用BulkInsert会提升很大一截提交效率,但是如果用循环构造提交的Datable,则算法开销太高,所以用这种查询批量查出符合格式的DataTable结果集。

*思想就是将查询列做CASE判断值,然后放在 SELECT段中作为别名列显示字段值,然后再根据ID分组。

下面是内层的原始查询效果:

下面是行转列后查询效果如图:

下面是上面两张图的最终查询语句:

 SELECT f_gameID,SUM(score) AS totNum,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject01,SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject02,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject03,SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject04,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject05,SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject06,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject07,SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject08,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject09
FROM
(
SELECT u.f_gameID,u.f_sub,COUNT(u.f_sub) AS score
FROM t_mfg_GameUserAnswers AS u
LEFT JOIN t_mfg_Class AS c ON u.f_gameId = c.f_gameId
WHERE u.f_startTime > '2015-07-20'
AND u.f_endTime < '2015-07-24'
-- AND c.f_schoolId =
GROUP BY u.f_gameID ,u.f_sub
) AS a
GROUP BY f_gameID;

Mysql按照字段值做分组行转列查询的更多相关文章

  1. 今天来学习一下MySQl的 临时表,变量,行转列,预处理的一些相关技术的使用!

    先来简单了解一下MySQL数据库有意思的简介 MySQL这个名字,起源不是很明确.一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上, 而且不管怎样,MySQL AB创始 ...

  2. Oracle学习总结(4)——MySql、SqlServer、Oracle数据库行转列大全

    MySql行转列 以id分组,把name字段的值打印在一行,逗号分隔(默认) select CustomerDrugCode,group_concat(AuditItemName) from noau ...

  3. SqlServer 行转列 查询 并 导出 到 Excel 中 自动换行

    SELECT A.Hawb, ( SELECT GoodsNameCn+char(10) FROM HawbBody hl WHERE hl.Hawb=A.Hawb FOR XML PATH('') ...

  4. MySQL判断字段值来确定是否插入新记录

    今天正好有个新需求,要求在一张表中,保证不插入重复的记录. 即,保证每条记录中的某个字段的值不重复. 下面是我给出的SQL语句: //存在-->更新 //不存在-->插入 UPDATE 表 ...

  5. mysql更新字段值提示You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode

    1 引言 当更新字段缺少where语句时,mysql会提示一下错误代码: Error Code: 1175. You are using safe update mode and you tried ...

  6. MYSQL 删除字段值为NULL的语法

    2014年9月1日 15:11:05 delete form your_table where your_field is null and your_field1 = '123' ...

  7. mysql 升序 字段值为NULL 排在后面

    select * from yryz_products_t order by isnull(sort),sort;

  8. mysql多字段组合删除重复行

    DELETEFROM boll_paramWHERE id in ( SELECT a.id FROM ( SELECT id FROM boll_param WHERE (symbol, time_ ...

  9. mysql分组,行转列

    aaarticlea/jpeg;base64,/9j/4QEsRXhpZgAASUkqAAgAAAAPAJqCCgABAAAAwgAAABABAgAQAAAAygAAAAABAwABAAAAQBAAA

随机推荐

  1. 【网络结构】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文解析

    目录 0. Paper link 1. Overview 2. Depthwise Separable Convolution 2.1 architecture 2.2 computational c ...

  2. c#实现任务栏添加控制按钮

    Windows7Taskbar的使用 你需要引入3个文件VistaBridgeLibrary.dll.Windows7.DesktopIntegration.dll.Windows7.DesktopI ...

  3. Springboot-mongodb MongoRepository接口 save方法 详解

    问题: 我们都知道 mongodb 有两种添加数据的方式  一种 就是  save 方法   另外一种 insert  方法 这里两个方法 唯一的区别就是 insert:当主键"_id&qu ...

  4. filezilla无法启动传输及严重文件传输错误

    filezilla无法启动传输 严重文件传输错误 文件夹权限不够,修改之. 你的空间或服务器已经满了,请空下回收站或者扩容. 文件正在被占用,关闭后传输 ​

  5. perl I/O和缓存的关系

    最近在查看日志时,突然发现信息没有及时写入日志,研究了很久,突然醒悟:原来是print的缓存原因. 顺着这个详细了解了下perl里的IO缓存机制: 1.正常情况下,操作系统的读写都有缓存(buffer ...

  6. IE 中的 button type默认值问题

    今天遇到一个问题. 将项目页面的渲染模式从 IE7 改为 IE10 后(<meta http-equiv="X-UA-Compatible" content="IE ...

  7. 深入理解AUC

    https://tracholar.github.io/machine-learning/2018/01/26/auc.html 我觉得作者写的很不错

  8. Oracle Solaris 11.4 GA 版发布,这将是 Solaris 的绝唱

    美国当地时间8月28日,Oracle 正式宣布推出 Oracle Solaris 11.4 GA 稳定版,距离上个版本 11.3 的发布已过去近三年.Oracle 的产品管理总监 Scott Lynn ...

  9. vim编程技巧

    1, :E 浏览目录 如果你要改变当前浏览的目录,或是查看当前浏览的目录,你可以使用和shell一样的命令: :cd <dir> – 改变当前目录 :pwd  - 查看当前目录 2, :l ...

  10. ubuntu 14.04 如何安装nvidia显卡驱动 [转载]

    我的机子装的是64位ubuntu 14.04 LTS系统,显卡是GeForce 405 ,想使用cuda所以需要装NVidia官方驱动,但是总是碰到 nouveau 驱动正在使用的问题.找了好久,网上 ...