Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql ost NEXT”,您是指与缺失行具有相同的refid的行的值,并且最大的勾号,使得勾号是缺失行的勾号?是否有任何勾号完全缺失(即表中根本没有出现的)需要添加吗?@outs对“最近的”值的定义是正确的。我相信可能会有勾号缺失(尽管我在野外没有看到)虽然这种_Mysql_Sql - Fatal编程技术网

Mysql ost NEXT”,您是指与缺失行具有相同的refid的行的值,并且最大的勾号,使得勾号是缺失行的勾号?是否有任何勾号完全缺失(即表中根本没有出现的)需要添加吗?@outs对“最近的”值的定义是正确的。我相信可能会有勾号缺失(尽管我在野外没有看到)虽然这种

Mysql ost NEXT”,您是指与缺失行具有相同的refid的行的值,并且最大的勾号,使得勾号是缺失行的勾号?是否有任何勾号完全缺失(即表中根本没有出现的)需要添加吗?@outs对“最近的”值的定义是正确的。我相信可能会有勾号缺失(尽管我在野外没有看到)虽然这种,mysql,sql,Mysql,Sql,ost NEXT”,您是指与缺失行具有相同的refid的行的值,并且最大的勾号,使得勾号是缺失行的勾号?是否有任何勾号完全缺失(即表中根本没有出现的)需要添加吗?@outs对“最近的”值的定义是正确的。我相信可能会有勾号缺失(尽管我在野外没有看到)虽然这种方法可能在其他RDBMS中也适用,但MySQL不支持减号。派生表c没有值列;您的意思是t1.value?而且,您似乎已经将join子句中的勾号和refid与t1和t2进行了交换。 tick refid value ---------------


ost NEXT”,您是指与缺失行具有相同的
refid
的行的
值,并且最大的
勾号
,使得
勾号
是缺失行的
勾号
?是否有任何
勾号
完全缺失(即表中根本没有出现的)需要添加吗?@outs对“最近的”
值的定义是正确的。我相信可能会有
勾号
缺失(尽管我在野外没有看到)虽然这种方法可能在其他RDBMS中也适用,但MySQL不支持
减号
。派生表
c
没有
列;您的意思是
t1.value
?而且,您似乎已经将join子句中的
勾号
refid
与t1和t2进行了交换。
tick refid value
----------------
1    1     11
1    2     22
1    3     33
2    1     1111
2    3     3333
3    3     333333
tick refid value
----------------
1    1     11
1    2     22
1    3     33
2    1     1111
2    2     22
2    3     3333
3    1     1111
3    2     22
3    3     333333
Select Ticks.tick
    , Refs.refid
    , Case
        When Table.value Is Null 
            Then    (
                    Select T2.value
                    From Table As T2
                    Where T2.refid = Refs.refId
                        And T2.tick =  (
                                        Select Max(T1.tick)
                                        From Table As T1
                                        Where T1.tick < Ticks.tick
                                            And T1.refid = T2.refid
                                        )
                    )
        Else Table.value
        End As value
From    (
        Select Distinct refid
        From Table
        ) As Refs
    Cross Join  (
                Select Distinct tick
                From Table
                ) As Ticks
    Left Join Table
        On Table.tick = Ticks.tick
            And Table.refid = Refs.refid
     SELECT a.tick, b.refid
       FROM ( SELECT DISTINCT tick  FROM t) a
 CROSS JOIN ( SELECT DISTINCT refid FROM t) b
     SELECT a.tick tick, b.refid refid
       FROM ( SELECT DISTINCT tick  FROM t) a
 CROSS JOIN ( SELECT DISTINCT refid FROM t) b
 MINUS
     SELECT DISTINCT tick, refid FROM t
INSERT INTO t(tick, refid, value)
SELECT c.tick, c.refid, t1.value
  FROM (        SELECT a.tick tick, b.refid refid
                  FROM ( SELECT DISTINCT tick  FROM t) a
            CROSS JOIN ( SELECT DISTINCT refid FROM t) b
            MINUS
                SELECT DISTINCT tick, refid FROM t
       ) c
 INNER JOIN t t1 ON t1.refid = c.refid and t1.tick < c.tick
  LEFT JOIN t t2 ON t2.refid = c.refid AND t1.tick < t2.tick AND t2.tick < c.tick
 WHERE t2.tick IS NULL 
SELECT tick, refid FROM
  (SELECT refid FROM chadwick WHERE tick=1) AS r
  JOIN 
  (SELECT DISTINCT tick FROM chadwick) AS t
SELECT tr.tick, tr.refid, MAX(c.tick) AS ctick
  FROM 
      (SELECT tick, refid FROM
        (SELECT refid FROM chadwick WHERE tick=1) AS r
        JOIN 
        (SELECT DISTINCT tick FROM chadwick) AS t
      ) AS tr
  JOIN chadwick AS c ON tr.tick >= c.tick AND tr.refid=c.refid
  GROUP BY tr.tick, tr.refid
  HAVING tr.tick > MAX(c.tick)
INSERT INTO chadwick
SELECT missing.tick, missing.refid, c.value
  FROM (SELECT tr.tick, tr.refid, MAX(c.tick) AS ctick
    FROM 
      (SELECT tick, refid FROM
        (SELECT refid FROM chadwick WHERE tick=1) AS r
        JOIN 
        (SELECT DISTINCT tick FROM chadwick) AS t
      ) AS tr
    JOIN chadwick AS c ON tr.tick >= c.tick AND tr.refid=c.refid
    GROUP BY tr.tick, tr.refid
  ) AS missing
  JOIN chadwick AS c ON missing.ctick = c.tick AND missing.refid=c.refid
;
+----+-------------+------------+-------+-------------------+----------+---------+----------+------+---------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+------------+-------+-------------------+----------+---------+----------+------+---------------------------------+ | 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 3 | | | 1 | PRIMARY | c | ALL | tick_ref,ref_tick | NULL | NULL | NULL | 6 | Using where; Using join buffer | | 2 | DERIVED | <derived3> | ALL | NULL | NULL | NULL | NULL | 9 | Using temporary; Using filesort | | 2 | DERIVED | c | ref | tick_ref,ref_tick | ref_tick | 5 | tr.refid | 1 | Using where; Using index | | 3 | DERIVED | <derived4> | ALL | NULL | NULL | NULL | NULL | 3 | | | 3 | DERIVED | <derived5> | ALL | NULL | NULL | NULL | NULL | 3 | Using join buffer | | 5 | DERIVED | chadwick | index | NULL | tick_ref | 10 | NULL | 6 | Using index | | 4 | DERIVED | chadwick | ref | tick_ref | tick_ref | 5 | | 2 | Using where; Using index | +----+-------------+------------+-------+-------------------+----------+---------+----------+------+---------------------------------+
SELECT clo.tick+1 AS missing_tick
  FROM chadwick AS chi
    RIGHT JOIN chadwick AS clo ON chi.tick = clo.tick+1
  WHERE chi.tick IS NULL;