mysql去重合并字符串_Mysql将近两个月的记录合并为一行显示

最近做报表统计,用到要求把近两个月的绩效作比较,并作出一些环比数据等。

场景:将1班同学的两个月的语文的平均成绩合并到一行比较。

CREATE TABLE `Chinese_score` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(64) NOT NULL,

`score` int(11),

`date` varchar(6),

PRIMARY KEY (`id`)

)

插入几条同学们两个月的成绩:

mysql> insert into chinese_score value(null,'张三',91,'201506');

mysql> insert into chinese_score value(null,'李四',88,'201506');

mysql> insert into chinese_score value(null,'老王',80,'201506');

mysql> insert into chinese_score value(null,'祥子',77,'201506');

mysql> insert into chinese_score value(null,'张三',89,'201507');

mysql> insert into chinese_score value(null,'李四',85,'201507');

mysql> insert into chinese_score value(null,'老王',79,'201507');

mysql> insert into chinese_score value(null,'祥子',82,'201507');

查询近两个月的语文平均成绩和总成绩作比较:

mysql> select avg(if(date='201506',score,null)) avg06, avg(if(date='201507',score,null)) avg07, sum(if(date='201506',score,null)) sum06, sum(if(date='201507',score,null)) sum07 from chinese_score;

+---------+---------+-------+-------+

| avg06 | avg07 | sum06 | sum07 |

+---------+---------+-------+-------+

| 84.0000 | 83.7500 | 336 | 335 |

+---------+---------+-------+-------+

1 row in set

avg(if(date='201506',score,null))的效果等于:

if():如果date的值为201506,那么将这条记录的score加入到avg(score)中,否则为null。

MSSQL-字符串分离与列记录合并成一行混合使用

一般我们在数据库的表字段存储字典Id,如果有多个的话一般是用,或分隔符分隔(12,14),列表显示的时候是显示字典名,那如果要在数据库将字典Id转成用户看得懂的字典名,该怎么办呢? 我们这时候可以结合 ...

MSSQL—列记录合并成一行

在项目开发中,有时会碰到将列记录合并为一行的情况,例如根据地区将人员姓名合并,或根据拼音首字母合并城市等,下面就以根据地区将人员姓名合并为例,详细讲一下合并的方法. 首先,先建一个表,并添加一些数据, ...

mysql去重, 把url重复且区为空的中去掉、统计重复数据、、结果集去重合并成一行

delete from 表名 where id not in (select d.id from (SELECT id FROM 表名 GROUP BY c1,c2,c3,c4)as d) #去重复, ...

MSSQL—列记录合并

在项目开发中,有时会碰到将列记录合并为一行的情况,例如根据地区将人员姓名合并,或根据拼音首字母合并城市等,下面就以根据地区将人员姓名合并为例,详细讲一下合并的方法. 首先,先建一个表,并添加一些数据, ...

mysql三表联合查询,结果集合并

参考: mysql 结果集去重复值并合并成一行 SQL 三表联查 数据库三表连接查询怎么做 合并: MySQL中group_concat函数 完整的语法如下: group_concat([DISTIN ...

MYSQL 两表 排除 重复记录

MySQL之——查询重复记录.删除重复记录方法大全 - 冰河的专栏 - CSDN博客https://blog.csdn.net/l1028386804/article/details/51733585 ...

MySQL 两个数据库表中合并数据

两个数据库表中合并数据 如果有  t1  和 t2 两个数据库表格,它们两个对应的字段是相同的.如何将 t2 的数据插入到t1中去呢? insert into t1 select * from t2 ...

MySQL查询数据表中数据记录(包括多表查询)

MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

两个月的Java实习结束,继续努力

前言 只有光头才能变强 2018年8月30日,今天我辞职了.在6月25号入职,到现在也有两个月时间了. 感受: 第一天是期待的:第一次将项目拉到本地上看的时候,代码很多,有非常多的模块,模块下又有da ...

随机推荐

如何牢记C/C++中const的用法?

(下面以 typename 表示C/C++内某一类型 我常常会搞混 const 放在 typename* 的前面和后面的区别,今天特地查看了它们两个各自的含义,总结了一下: const typenam ...

espcms自定义表单邮件字段

/include/inc_replace_mailtemplates.php中增加一行就可以了. 如:$replacemail['mailform'][] = array(name => '职位 ...

LINUX_source

Be careful! ./ and source are not quite the same. ./script runs the script as an executable file, la ...

【转】终于干了点正事。。三天用了三个库opencv、emgu、aforge.net[2011.7.30]

原文转自: http://blog.csdn.net/tutuguaiguai0427/article/details/6646051 这阵子,确切说这几天,还是看了好多东西的.虽然无用功居多. 上篇 ...

android LocalActivityManager说明

类概述 Helper class for managing multiple running embedded activities in the same process. This c ...

Linux 命令 - curl: transfer a URL

命令格式 curl [options] [URL...] 命令参数 -0, --http1.0 强制使用 HTTP/1.0 发送请求 -A, --user-agent 指定用户代理 -b/--cook ...

redhat nginx 启动脚本

#!/bin/sh # # nginx - this script starts and stops the nginx daemin # # chkconfig: - 85 15 # descrip ...

Python并发编程__多进程

Python并发编程_多进程 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大 ...

java常用IO流集合用法模板

package com.fmy; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import jav ...

SpringCloud入门之eclipse新建maven子项目和聚合项目

一.new maven project :  next 二.勾选 create a simple project  :  next 三.Group Id:项目的包路径 如com.test,之后创建的C ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值