首页 > 数据库 >数据库SQL行专列和列转行

数据库SQL行专列和列转行

时间:2024-03-04 09:22:19浏览次数:24  
标签:name union 转行 专列 COURSE SCORE user SQL

行转列适用于按照数据的某个维度的聚合,例如成绩单,按照学生姓名整合各科成绩;
列转行适用于拆分某条数据的各属性,例如拆分学生成绩单,按名称、学科、成绩展示;

行转列方法:

通常使用聚合函数对数据进行处理,例如sum、max、count等

SELECT user_name ,
    MAX(CASE course WHEN '数学' THEN score ELSE 0 END ) 数学,
    MAX(CASE course WHEN '语文' THEN score ELSE 0 END ) 语文,
    MAX(CASE course WHEN '英语' THEN score ELSE 0 END ) 英语
FROM student
GROUP BY USER_NAME;

列转行方法:

通常使用union、union all进行数据组合

select user_name, '语文' COURSE , CN_SCORE as SCORE from grade
union select user_name, '数学' COURSE, MATH_SCORE as SCORE from grade
union select user_name, '英语' COURSE, EN_SCORE as SCORE from grade
order by user_name,COURSE;

标签:name,union,转行,专列,COURSE,SCORE,user,SQL
From: https://www.cnblogs.com/Zhao01/p/18051172

相关文章

  • MySQL查看执行慢的SQL语句(慢查询)
    更新日志点击查看2024年3月4日发布。慢查询日志查看执行慢的SQL语句,需要先开启慢查询日志。MySQL的慢查询日志,记录在MySQL中响应时间超过阀值的语句(具体指运行时间超过long_query_time值的SQL。long_query_time的默认值为10,意思是运行10秒以上(不含10秒)的语句)。......
  • sql常见四种连接查询
    原文链接:https://learn.microsoft.com/zh-CN/sql/relational-databases/performance/joins?view=aps-pdw-2016-au7         https://www.cnblogs.com/alone-striver/p/9055078.html1、内部联接  INNERJOIN2、左外部联接  LEFT[OUTER]JOIN3、右......
  • python接口自动化系列(06):解析初始化sql
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标将initSql中常用变量占位符(下图划线的)替换为实际值。 添加替换变量工具模块substitution_tool.py#!/usr/bin/envpython#-*-coding:utf-8-*-#@Author:韧#@wx:ren168632201#@Bl......
  • sql语句in的用法(使用多个列进行匹配)
    原文链接:https://www.cnblogs.com/hellohui/p/17670858.html今天遇到了in的新用法,即文中的第四条,使用多个列进行匹配,在此记录下。使用列值列表进行匹配:SELECT*FROM表名WHERE列名IN(值1,值2,值3,...)使用子查询返回多个结果进行匹配:SELECT*FROM表名WHERE......
  • [极客大挑战 2019]BabySQL 1
    [极客大挑战2019]BabySQL1审题还是SQL注入和之前的是一个系列的。知识点联合注入,双写绕过解题输入万能密码发现回显中没有or,猜测是使用正则过滤了or。尝试双写绕过登录成功使用联合查询,本题中过滤了from,where,or,by,union,select。看到4没有注入点,2和3都......
  • SQL注入注入方式(大纲)
    SQL注入注入方式(大纲)常规注入通常没有任何过滤,直接把参数存放到SQL语句中。宽字节注入GBK编码两个字节表示一个字符ASCII编码一个字节表示一个字符MYSQL默认字节集是GBK等宽字节字符集原理:设置MySQL时错误配置为setcharacter_set_client=gbk(它将客户端字符集设置......
  • SQL intern 29题记录及心得
    表结构21、豹子手机号用户(4个连续数字,如6666)和非豹子号用户的笔均消费金额分别是多少?withbas(selectusr_id,casewhenphone_numREGEXP'[0-9](?=\\1{3})'THEN'Leopard'`else'no-Leopard'`endasis_豹子fromid_inf)selectavg(a.trx_amt),is_豹......
  • MySQL之pymysql模块
    Navicat软件我们在终端操作MySQL,既没有自动操作也无法保存,不方便开发,所以我们使用Navicat,Navicat内部封装了所有的操作数据库的命令。我们在使用它的时候只需要鼠标点击即可完成操作,无需书写SQL语句。详细参考:Day48-04navicat基本使用_哔哩哔哩_bilibili注释语法在navicat......
  • MySQL之多表操作
    第一步:创表#建表createtabledep( idintprimarykeyauto_increment,namevarchar(20));createtableemp( idintprimarykeyauto_increment,namevarchar(20),sexenum('male','female')notnulldefault'male',......
  • MySQL之视图、触发器、存储过程、函数和流程控制
    视图什么是视图视图就是通过查询得到一张虚拟表,然后保存下来,下次可以直接使用其实视图也是表为什么要用视图如果要频繁的操作一张虚拟表(拼表组成的),你就可以制作成视图,后续直接操作如何操作#固定语法createview表名as虚拟表的查询SQL语句#具体操作create......