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
随机推荐
- Thinkphp模板中使用自定义函数的方法
- 从数据库中读取记录横向排列
- java解析xml之dom4j解析xml示例分享
- 利用PHP实现短域名互转
- php 访问oracle 存储过程实例详解
- 模拟SQLSERVER的两个函数:dateadd(),datediff()
- 实例讲解yii2.0在php命令行中运行的步骤
- C++中指针和引用的区别详解
- php更新修改excel中的内容实例代码
- 基于Java回顾之集合的总结概述
- 加速IE的Javascript document输出的方法
- 超详细的CMD DOS下符号的作用参考第1/2页
- PowerShell脚本清理指定天数前的临时文件夹实现代码
- 输入3个字符串,将它们按照字母由大到小排序(示例代码)
- php去除数组中重复数据
- Android学习教程之图片毛玻璃效果(4)
- MyBatis中的resultMap简要概述
- android保存Bitmap图片到指定文件夹示例
- php制作简单模版引擎
- Thinkphp框架开发移动端接口(2)
