• SQL小技巧


    1. 查询第K大

    SELECT *
    FROM table
    ORDER BY key DESC
    LIMIT k-1, 1
    
    LIMIT m,n : 表示从第m+1条开始,取n条数据;
    LIMIT n : 表示从第0条开始,取n条数据,是limit(0,n)的缩写。
     
    2. 连接
    left join,right join,inner join,full join之间的区别
    https://www.cnblogs.com/lijingran/p/9001302.html
    left join 和 right join 分别只保留左表、右表所有行,连接处笛卡尔乘积
    inner join相当于交集, full join相当于并集
     
    3. group by
     
    可以单个字段使用,也可以多个字段使用
     
    WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。   
    HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。
     
    常用的聚合函数:count() , sum() , avg() , max() , min()
    配合一起使用,可以用在SELECT里面,也可以在HAVING中使用去除掉,例如COUNT结果小于1000的组
     
    4. ROW_NUMBER()
     
    表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
    row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 
     
    5. SELECT嵌套使用
     
    SELECT dept_no, emp_no, salary
    FROM(
        SELECT dept_emp.dept_no, dept_emp.emp_no, salaries.salary, 
        ROW_NUMBER() over(partition by dept_emp.dept_no order by salaries.salary DESC) k
        FROM dept_emp LEFT JOIN salaries
        ON dept_emp.emp_no = salaries.emp_no
    ) A
    WHERE k=1
    ORDER BY dept_no
    
     
  • 相关阅读:
    51Nod 1007 正整数分组(01背包)
    二叉树层次遍历(以先序输入)
    HttpContext.Current.Request.Url
    SqlDataReader和SqlDataAdapter的区别
    DataSet和DataTable详解
    DataTable和DataSet什么区别
    Git 忽略
    hack速查表
    ie6常见css bug
    详说 IE hasLayout
  • 原文地址:https://www.cnblogs.com/eastblue/p/15538791.html
Copyright © 2020-2023  润新知