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
随机推荐
- Linux下Oracle删除用户和表空间的方法
- WampServer搭建php环境时遇到的问题汇总
- node中Express 动态设置端口的方法
- js调用iframe实现打印页面内容的方法
- JavaScript实现网页截图功能
- 图解JAVA中Spring Aop作用
- Android实现刮刮乐示例分析
- 浅析BootStrap模态框的使用(经典)
- Python编写简单的HTML页面合并脚本
- 用ASP实现分级权限控制
- 使用ajax和history.pushState无刷新改变页面URL示例
- sqlserver 局部变量的使用
- jqGrid增加时--判断开始日期与结束日期(实例解析)
- js实现人民币大写金额形式转换
- 域内禁止上某个网站的方法(wpkg.org)
- Java技术长久占居主要地位的12个原因
- vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
- 使用vue-router设置每个页面的title方法
- Android如何通过URI获取文件路径示例代码
- Python实现读取字符串按列分配后按行输出示例