今天做个后台服务,有个需求是批量生成一批表的数据,如果用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. 修改主机hosts文件 访问外网

    参考:详解google Chrome浏览器(理论篇) 感谢原博主 Alan_beijing 的分享,博客:Alan_beijing hosts文件所在位置: a.Windows系统: C:\Windo ...

  2. hadoop安装时报错 /usr/local/hadoop-2.6.0-stable/hadoop-2.6.0-src/hadoop-hdfs-project/hadoop-hdfs/target/findbugsXml.xml does not exist

    安装时报错:Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (site) on project ...

  3. VS2012 QT5.2.0 无法解析的外部符号

    背景:在新建QT工程时,可能没有选择一些库,虽然在头文件中引用了,但是程序依然无法识别 现象:一般出现"LNK2019"错误. 解决:以网络为例,在VS2012中加入网络库,分为两 ...

  4. springboot数据库操作及事物管理操作例子

    一.配置文件 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifa ...

  5. 对reducers 理解

    var reducers = { totalInEuros : function(state, item) { return state.euros += item.price * 0.8974243 ...

  6. mongo的集群部署

    # MongoDB 集群部署 ## 关键词 * 集群 * 副本集 * 分片 ## MongoDB集群部署 >今天主要来说说Mongodb的三种集群方式的搭建Replica Set副本集 / Sh ...

  7. bootstrap 知识点

    1.datetimepicker //带分钟选择 $('.form_datetime').datetimepicker({ format: 'yyyy-mm-dd HH:mm:ss', languag ...

  8. mvc框架详解

    mvc全称:Model View Controller,分别为Model(模型),View(视图),Controller(控制器). 这张图就很好的解释了MVC框架的基本工作原理,Modal通常为后台 ...

  9. poj 3411 Paid Roads很水的DFS

    题意:给你N 城市和M条道路,每条道路要付的钱,但是如果你在这个道路上你可以付其他道路的钱(跟走到的时候去的话不一样),问你从1走到N最少话费是多少. 直接DFS搜. 链接http://poj.org ...

  10. 奔跑吧ansible笔记一(概述)

    1.普通用户想使用sudo到root用户下执行一些有root权限的操作需要在被管理机器上做如下操作 1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去. 2.添加sudo文件的写权限,命 ...