mysql 将列值转变为列的方法
-- 创建库
CREATE TABLE `rate` (
`uname` VARCHAR (300),
`object` VARCHAR (300),
`score` VARCHAR (300)
);
-- 插入数据
INSERT INTO test.rate (uname, object, score)
VALUES('aaa', 'chinese', '67'),
('aaa', 'math', '89'),
('aaa', 'physical', '89'),
('bbb', 'chinese', '67'),
('bbb', 'math', '75'),
('bbb', 'physical', '89');
-- 查询
SELECT DISTINCT uname AS '姓名',
SUM(CASE object
WHEN 'chinese' THEN score END) AS '语文',
SUM(CASE object
WHEN 'math' THEN score END) AS '数学',
SUM(CASE object
WHEN 'physical' THEN score END) AS '物理' FROM rate GROUP BY uname;
相关推荐
-
Pandas多列值合并成一列的实现
在平时的需求开发中涉及到将多列值合并为一列值的操作,通过查阅相关资料特此记录以下方法,方便日后学习复盘 import pandas as pd import numpy as np df = pd.DataFrame(data={'语文':[50,90,70,78,60], '数学':[59,80,60,75,69], '英语':[61,95,65,80,59]}, index=['Harry','Andy','Rita','Lee','Jack']) # 添加'总分'字段 df['总分'] =
-
mysql 将列值转变为列的方法
复制代码 代码如下: -- 创建库CREATE TABLE `rate` ( `uname` VARCHAR (300), `object` VARCHAR (300), `score` VARCHAR (300)); -- 插入数据INSERT INTO test.rate (uname, object, score) VALUES('aaa', 'chinese', '67'), ('aaa', 'math', '89'), ('aaa', 'physical', '89'), ('bbb'
-
MySQL中将一列以逗号分隔的值行转列的实现
前言 有时会遇到没有遵守第一范式设计模式的业务表.即一列中存储了多个属性值.如下表 pk value 1 ET,AT 2 AT,BT 3 AT,DT 4 DT,CT,AT 一般有这两种常见需求(测试数据见文末) 1.得到所有的不重复的值,如 value AT BT CT DT ET SQL如下: select distinct(substring_index(substring_index(a.col,',',b.help_topic_id+1),',',-1)) from (select gr
-
MySQL为何不建议使用默认值为null列
通常能听到的答案是使用了NULL值的列将会使索引失效,但是如果实际测试过一下,你就知道IS NULL会使用索引.所以上述说法有漏洞. 着急的人拉到最下边看结论 Preface Null is a special constraint of columns. The columns in table will be added null constrain if you do not define the column with "not null" key words explicit
-
正确理解Mysql中的列索引和多列索引
Mysql数据库提供两种类型的索引,如果没正确设置,索引的利用效率会大打折扣却完全不知问题出在这. 复制代码 代码如下: CREATE TABLE test ( id INT NOT NULL, last_name CHAR(30) NOT NULL, first_name CHAR(30) NOT NULL, PRIMARY KEY (id), INDEX name (last_name,first_name)); 以上创建的其实是一个多列索引,
-
mysql 实现互换表中两列数据方法简单实例
由于最近项目,有这样一个需求,是把数据库中的两列数据互换,经过好久才搞定,这里写个简单实例,做过记录. 1.创建表及记录用于测试 CREATE TABLE `product` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '产品id', `name` varchar(50) NOT NULL COMMENT '产品名称', `original_price` decimal(5,2) unsigned NOT NULL COMMEN
-
使用pandas实现筛选出指定列值所对应的行
在pandas中怎么样实现类似mysql查找语句的功能: select * from table where column_name = some_value; pandas中获取数据的有以下几种方法: 布尔索引 位置索引 标签索引 使用API 假设数据如下: import pandas as pd import numpy as np df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(), 'B': 'one one
-
Python保存dict字典类型数据到Mysql并自动创建表与列
字典是另一种可变容器模型,且可存储任意类型对象,主要是工具类, 接下来使用pymysql来创建表与SQL 下面来看看示例代码: import pymysql class UseMysql(object): def __init__(self, user, passwd, db, host="127.0.0.1", port=3306): self.db = db self.conn = pymysql.connect( h
-
MySQL性能之count* count1 count列对比示例
目录 正文 count() 性能与啥相关? MVCC 简介 MySQL 对 count() 的优化 查询性能 PK 大起底 count(主键id) count(1) count(字段) count(*) count(1) 和 count(*) 对比 总结 正文 最近的工作中,我听到组内两名研发同学在交流数据统计性能的时候,聊到了以下内容: 数据统计你怎么能用 count(*) 统计数据呢,count(*) 太慢了,要是把数据库搞垮了那不就完了么,赶紧改用 count(1),这样比较快......
-
Asp.net中获取DataTable选择第一行某一列值
数据源是一个DataTable,现在我们需要获取这个DataTable的第一行第一列的值. 先准备一个数据集,创建一个DataTable,并填充数据: source code: using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using Insus.NET.Models; na
随机推荐
- 用vbscript防止本地用户更改其密码
- vue之nextTick全面解析
- jQuery+php简单实现全选删除的方法
- NetCore1.1+Linux部署初体验
- JavaScript中字符串分割函数split用法实例
- PHP中对各种加密算法、Hash算法的速度测试对比代码
- Activiti-Explorer使用sql server数据库实现方法
- C#实现将HTML转换成纯文本的方法
- MySQL联合索引功能与用法实例分析
- 用存储过程、GetRows()、抽取10万条数据的速度测试
- 相对路径转化成绝对路径
- Python编程中对文件和存储器的读写示例
- Django1.3添加app提示模块不存在的解决方法
- 纯JAVASCRIPT图表动画插件Highcharts Examples
- 基于jQuery 实现bootstrapValidator下的全局验证
- 解决IIS中应用程序池提供服务的进程无法响应Ping或进程关闭时间超过了限制
- linux ssh 使用深度解析(key登录详解)
- Ubuntu10.10配置网络
- Python学习小技巧之列表项的推导式与过滤操作
- C# WINFORM 强制让窗体获得焦点的方法代码
