sql >> データベース >  >> RDS >> Mysql

MySQLのPostgresウィンドウ関数lag()と同等のクエリ

    機能を模倣するには、変数を使用する必要があります。例については、このページを参照してください:

    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. JSON_SEARCHとJSON_EXTRACTを組み合わせると、次のようになります。無効なJSONパス式。

    2. 複数のクエリに対するPDOのサポート(PDO_MYSQL、PDO_MYSQLND)

    3. EntityFrameworkFluent構文またはインライン構文を使用した再帰CTEの記述

    4. ip =inet_pton($ ip)の場所を選択できません