zoukankan      html  css  js  c++  java
  • 行列互换,分页查询

    1.行列互换,记录A,B,C三个仓库三个月的库存情况的表,但是我们想看每个仓库每一个月的库存情况,这个时候需要使用行列互换,

    主要就是分组列+分组函数,列进行分组,函数显示每个月的库存

    一旦使用group by分组条件
    可以select显示的列 只有两种 (分组条件 分组函数)
    select
    仓库名称,
    max(判断 月份=1 显示库存), if(表达式,v1,v2)
    max(判断 月份=2 显示库存),
    max(判断 月份=3 显示库存)
    from warehouse
    group by 仓库名称;

    分组函数不一定是max,min或者avg都行,因为仓库名跟月份的组合是唯一的。

    仓库---->warehouse
    库存---->inventory
    wname winventory wmonth
    仓库名称 仓库库存 月份
    A 100 一月份
    B 1000 一月份
    C 10 一月份
    A 200 二月份
    B 2000 二月份
    C 20 二月份
    A 300 三月份
    B 3000 三月份
    C 30 三月份

    仓库名称 一月份 二月份 三月份 。。。。
    A 100 200 300 A组 三个值 每一个月份对应一个库存
    B 1000 2000 3000 B组 三个值 每一个月份对应一个库存
    C 10 20 30 C组 三个值 每一个月份对应一个库存

    2.分页查询,在mysql中使用limit进行分页查询,limit 5,表示查询前5行,limit 5,10 表示查询第5到10行,总共5行记录。一般需要联合排序

    +-------+--------+-----------+------+------------+---------+---------+--------+
    | empno | ename | job | mgr | hiredate | sal | comm | deptno |
    +-------+--------+-----------+------+------------+---------+---------+--------+
    | 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 |
    | 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 |
    | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 |
    | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 |
    | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 |
    | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 |
    | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
    | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 |
    | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 |
    | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 |
    | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 |
    | 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 |
    | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 |
    | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
    +-------+--------+-----------+------+------------+---------+---------+--------+

    select * from emp order by sal desc limit 0,5;//从0行开始5行记录

    +-------+-------+-----------+------+------------+---------+------+--------+
    | empno | ename | job | mgr | hiredate | sal | comm | deptno |
    +-------+-------+-----------+------+------------+---------+------+--------+
    | 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 |
    | 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 |
    | 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 |
    | 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 |
    | 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 |
    +-------+-------+-----------+------+------------+---------+------+--------+

    select * from emp order by sal desc limit 5,5;//从5行开始(不算第5行,从6行开始),查询5行记录,即6,7,8,9,10

    +-------+--------+----------+------+------------+---------+--------+--------+
    | empno | ename | job | mgr | hiredate | sal | comm | deptno |
    +-------+--------+----------+------+------------+---------+--------+--------+
    | 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 |
    | 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
    | 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 |
    | 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 |
    | 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 |
    +-------+--------+----------+------+------------+---------+--------+--------+

    select * from emp order by sal desc limit 10,20;//如果行数不够,显示剩余实际行数

    +-------+--------+----------+------+------------+---------+---------+--------+
    | empno | ename | job | mgr | hiredate | sal | comm | deptno |
    +-------+--------+----------+------+------------+---------+---------+--------+
    | 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 |
    | 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 |
    | 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 |
    | 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
    +-------+--------+----------+------+------------+---------+---------+--------+

  • 相关阅读:
    C#中的Json序列化
    c#在sqlserver中使用EF框架
    Mvc中模拟模型
    localdb启动
    List泛型用法(半转载半原创)
    C#中真正的属性
    委托的简介、使用和简单事件
    类嵌套_list泛型_餐馆点菜例
    JavaIO
    JavaIO
  • 原文地址:https://www.cnblogs.com/hebiao/p/14166935.html
Copyright © 2011-2022 走看看