Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Postgres funkcja okna lag() odpowiednik zapytania w MySQL

Musisz użyć zmiennych, aby naśladować funkcjonalność. Zobacz przykłady na tej stronie:

http://www.onlamp.com/pub/a/mysql/2007/04/12/emulating-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. PHP:Jeśli rekord istnieje, wyświetlaj kod HTML, w przeciwnym razie nie wyświetlaj nic

  2. Ruby, Rails:mysql2 gem, czy ktoś używa tego klejnotu? Czy jest stabilny?

  3. Jak obliczyć dziennych aktywnych użytkowników (DAU) w MySQL?

  4. MySQL, DELETE Query z dołączeniem

  5. Pobieranie MySQL Workbench... -- nie można przeglądać bazy danych