使用查询让表格纵排变横排

在数据库查询的操作中,常常会见到,让纵向排列的数据变成横向排,这其中涉及到的知识点有聚合函数,分组及if函数等等.

大致思路可以分为:根据题目意思,先选择合适的列名进行分组;使用聚合函数来控制列数;if函数来控制条件,if(条件,条件为真的返回值,条件为假的返回值).

表内容:

2022-05-09 胜

2022-05-09 胜

2022-05-09 负

2022-05-09 负

2022-05-10 胜

2022-05-10 负

2022-05-10 负

如果要生成下列结果, 该如何写sql 语句?

日期 胜 负

2005-22-09 2 2

2005-22-10 1 2

这道题就是统计在哪一天,胜了多少局,败了多少局,让日期作为分组条件,接着判断,如果结果为”胜”,sum加1,同理,也一样.

year

month

amount

2020

1.1

2020

1.2

2020

1.3

2020

1.1

2021

1.2

2021

1.3

2021

1.5

2021

1.2

查询结果如下

year

2020

1.1

1.2

1.3

1.1

2021

1.2

1.3

1.5

1.2

请编写一条SQL语句实现上图的效果

可以看到,结果的第一行是别名,别名的语法: 列名 别名;或者 列名 AS 别名;

这道题是分别找出对应年份,对应月份的amount值,进行横排

表形式如下: (7)

Year Salary

2018 1000

2019 2000

2020 3000

2021 4000

想得到如下形式的查询结果

Year Salary

2018 1000

2019 3000

2020 6000

2021 10000

这道题的规律是,比之年份小的,Salary全部加起来.用到的是自连接,一张表控制对应的Salary,另一张表找到年份比它大的 Salary值,然后求和.

1.if()函数与ifnull()的区别,if()函数是用来做判断的,其语法有点类似三目运算;

ifnull()函数是判断那一列如果有null值的话,就让那个null变为0,因为null参加计算结果都为空.

2.使用聚合函数相当于在表中加多一列,聚合函数有求AVG(),MAX(),MIN(),COUNT(),SUM().

3.聚合函数使用分组,表示对分组后的数据的统计;不使用分组,表示对整张表的统计.

Original: https://www.cnblogs.com/pilpill/p/16667495.html
Author: Tmillion
Title: 使用查询让表格纵排变横排

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/587034/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • java List去掉重复元素的几种方式

    List words= Arrays.asList("a","b","b","c","c&…

    Java 2023年6月7日
    078
  • 打造适合自己的知识库

    终生学习,终生教育。 对于知识工作者来说,知识库是持续支撑整个职业生涯的重要基础。程序员,算是半个知识工作者工种。 知识库可以看做是海量资源库的本地缓存。它的特点是:少而精要,重点…

    Java 2023年6月9日
    075
  • aardio + .NET 快速开发独立 EXE 程序,可防 ILSpy 反编译

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月16日
    078
  • CentOS7 安装keepalived 实现 nginx 主备高可用

    0x00 实验环境 本次实验所用环境如下: 虚拟机:VirtualBox 6.1 创建的两台CentOS7虚拟机 OS:CentOS Linux release 7.7.1908 …

    Java 2023年5月30日
    062
  • aardio + Python 可视化快速开发桌面程序,一键生成独立 EXE

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月16日
    063
  • 程序员的第一步(初始电脑)

    电脑的介绍 Computer:全称电子计算机,俗称电脑 作用:能够按照程序运行,自动,高速处理海量数据的现代化智能电子设备 (近代最伟大的发明之一) 我认为没有之一(只代表个人意见…

    Java 2023年6月16日
    051
  • Spring-Boot项目中配置redis注解缓存

    在pom中添加redis缓存支持依赖 org.springframework.boot spring-boot-starter-data-redis 在yml中添加redis配置 …

    Java 2023年6月8日
    080
  • 技能篇:docker的简易教程

    虚拟机技术每家公司发展到一定规模都必须考虑的,更好的环境隔离,更好的事故排查,更好的服务部署 docker的原理 docker更换阿里源 docker容器的相关命令 Dockerf…

    Java 2023年6月5日
    086
  • 我入职腾讯啦

    蚂蚁金服上市的消息我想已经席卷了大家的朋友圈了,我也第一时间慰问了我所有蚂蚁的朋友,有期权的小伙伴都在估算自己变现后数字了,确实有很多老阿里人有财富自由的机会了,也有P7以下没期权…

    Java 2023年6月9日
    064
  • 戏说领域驱动设计(十四)——补遗

    写了好几章的东西,再回头读的时候发现有些内容写的不理想,没有表达出自己所想要表达的意思。这次写一个补遗,把我认为需要重新解释和着重说明的内容再唠一唠。反正我多说两句,您就可以多理解…

    Java 2023年6月7日
    060
  • 自动备份一个TXT文件里面的SVN库

    之前的项目都是使用SVN进行代码管理,万一SVN挂了,,,项目全部爆炸,,,所以定时备份还是有必要的,,,虽然现在都不用SVN了,,,记录一下自己的备份方法 Original: h…

    Java 2023年6月15日
    061
  • Spring AOP的简单示例

    配置文件

    Java 2023年5月30日
    084
  • 61.小尖尖

    dsfsf posted @2022-09-28 08:35 随遇而安== 阅读(6 ) 评论() 编辑 Original: https://www.cnblogs.com/55z…

    Java 2023年6月7日
    093
  • 【spring源码学习】spring的事务管理源码学习

    一、抽象概念 1、事务管理器 接口:org.springframework.transaction.PlatformTransactionManager 实现类:org.sprin…

    Java 2023年5月29日
    072
  • 基于协同过滤算法实现选课推荐系统

    1.系统功能 1、用户账户管理2、学生个人信息的查看与修改3、学生的网上选课与课程的评分4、教师个人信息的查看与修改5、教师对学生课程评价结果的查看6、管理员对学生信息与教师信息的…

    Java 2023年6月8日
    0171
  • 微信小程序开发 Java 开发校园报修系统

    ​此项目不定期分享进度 绪论 随着高校每年的扩大招生,学校人数越来越多,学校后勤报修管理的工作量也越水越繁重。使用传统的管理手段和方法,很难完成大量的信息分析和处理。因此,充分利用…

    Java 2023年6月8日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球