算法第六天+数据库练习-三表合一

导读:本篇文章讲解 算法第六天+数据库练习-三表合一,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

二分法:

package 二分;

public class test1 {


    /**
     *
     * 暴力对数器
     */
    public  static  boolean dui(int[] sortArr, int num){
        for (int cur : sortArr){
            if (cur == num){
                return  true;
            }
        }
        return  false;

    }


    /**
     * 二分法
     * @param arr
     * @param num
     * @return
     */
    public  static  boolean find(int[] arr,int num){
        if(arr == null || arr.length == 0){
            return false;
        }
        int L = 0;
        int R  = arr.length;
        while ( L <= R){
            int mid = (L+R) / 2;
            if (arr[mid] == num){
                return  true;
            }else if (arr[mid]< num){
                L = mid+1;
            }else {
                R = mid-1;
            }
        }
        return  false;
    }
}

mysql:

请添加图片描述
请添加图片描述

我们这里可以选择将三个表连接在一起:变成一个表,通过两个join

select d.dept_no,d.dept_name,count(s.salary) as sum
from departments d join dept_emp de 
on d.dept_no = de.dept_no
join salaries s on de.emp_no = s.emp_no
group by d.dept_no
order by d.dept_no ASC

昨天我们遇到的是那个三表链接是使用的left join 这里我们可以通过观察表格去发现,是否有对应关系,比如如果使用左连接就应该这样:左边的有有右边对应不上的,而今天的这个题直接使用join,因为可以条件deot_no全部吻合

请添加图片描述

下面介绍三种用于进行排序的专用窗口函数:

1、RANK()
在计算排序时,若存在相同位次,会跳过之后的位次。
例如,有3条排在第1位时,排序为:1,1,1,4······

2、DENSE_RANK()
这就是题目中所用到的函数,在计算排序时,若存在相同位次,不会跳过之后的位次。
例如,有3条排在第1位时,排序为:1,1,1,2······

3、ROW_NUMBER()
这个函数赋予唯一的连续位次。
例如,有3条排在第1位时,排序为:1,2,3,4······

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/80977.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!