成绩单、业绩表SQL(一个纵表变横表 一个用开窗函数)

2023-11-29 14:08

本文主要是介绍成绩单、业绩表SQL(一个纵表变横表 一个用开窗函数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 原始表:

name            course              score
-----------------------------------------
张三            语文                80
张三            数学                75
张三            外语                60
李四            语文                90
李四            数学                85
李四            外语                70
王五            语文                95
王五            数学                80
王五            外语                75


结果表:

姓名        语文        数学        外语
-----------------------------------------
张三        80          75          60
李四        90          85          70
王五        95          80          75

=========================================

原始表:

city          volume
---------------------
北京          16000
东莞          5000
上海          200000
广州          8500
湛江          100000

结果表:

城市          排名
---------------------
北京          3
东莞          5
上海          1
广州          4
湛江          2

SQL code 1:
  
select name, sum(case when course = "语文" then score else 0 end) "语文", sum(case when course = "数学" then score else 0 end) "数学", sum(case when course = "外语" then score else 0 end) "外语" from table1 group by name; select city, row_number() over(order by volume desc) "排名" from table2;
  
SQL code 2:
  
SELECT name,SUM(DECODE(course,'语文',score,0)),SUM(DECODE(course,'数学',score,0)),SUM(DECODE(course,'外语',score,0)) FROM tb1 GROUP BY name; SELECT city "城市",rownum "排名" FROM tb2 ORDER BY volume DESC
  
SQL code 3:
 
select name,max(case when course='语文' then score end) "语文", max(case when course='数学' then score end) "数学", max(case when course='外语' then score end) "外语" from table_name group by name;
select city "城市",row_number() over(order by volume desc) as "排名" from ww0924 order by rowid;

这篇关于成绩单、业绩表SQL(一个纵表变横表 一个用开窗函数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/433133

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID