Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn tương đương hàm cửa sổ Postgres lag () trong MySQL

Bạn cần sử dụng các biến để bắt chước chức năng. Xem trang này để biết các ví dụ:

http://www.onlamp.com/pub/a/mysql/2007/04/12/emulation-analytic-aka-ranking-functions-with-mysql.html?page=2

-- Oracle
select DEPTNO, AVG(HIRE_INTERVAL)
   2  from  (select DEPTNO,
   3               HIREDATE - LAG(HIREDATE, 1)
   4                             over (partition by  DEPTNO
   5                                   order by HIREDATE)  HIRE_INTERVAL
   6         from EMPLOYEES)
   7   group by DEPTNO

-- MySQL
select DEPTNO, avg(HIRE_INTERVAL)
       -> from (select DEPTNO,
       ->              if (@dept = DEPTNO,
       ->                     datediff(HIREDATE, @hd) +  least(0, @hd := HIREDATE),
       ->                     NULL + least(0, @dept :=  DEPTNO) + (@hd := NULL))
       ->                                                      HIRE_INTERVAL
       ->        from EMPLOYEES,
       ->            (select (@dept := 0)) as a
       ->        order by DEPTNO, HIREDATE) as b
       -> group by DEPTNO;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các trường thập phân MySQL được trả về dưới dạng chuỗi trong PHP

  2. Nhiều bộ chứa docker cho mysql hoặc một phiên bản có nhiều cơ sở dữ liệu

  3. TẠO BẢNG MySQL và T-SQL với các ví dụ về cú pháp

  4. Mysql KHÔNG VÀO và KHÔNG TỒN TẠI có giống nhau không?

  5. hiển thị dữ liệu từ cơ sở dữ liệu vào bảng html