Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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使用另一个字段中的值覆盖值_Mysql - Fatal编程技术网

MySQL使用另一个字段中的值覆盖值

MySQL使用另一个字段中的值覆盖值,mysql,Mysql,以下是我拥有的数据集: user_id sum_min sum_max ---------- --------------- ----------------- 38 300000.00 300000.00 38 320000.00 320000.00 38 340000.00 340000.00 38 350000.0

以下是我拥有的数据集:

 user_id     sum_min          sum_max  
----------  ---------------  -----------------
    38        300000.00          300000.00
    38        320000.00          320000.00
    38        340000.00          340000.00
    38        350000.00          350000.00
    38        380000.00          380000.00
    38        380000.00          380000.00
    38        400000.00          400000.00
    38        420000.00          420000.00
    38        450000.00          450000.00
    38        450000.00          450000.00
    38        480000.00          480000.00
    38        480000.00          480000.00
    38        500000.00          500000.00
    38        520000.00          520000.00
我需要做的是为下一条记录的sum_max值和sum_min值建立类似范围的值。 预期结果应为:

 user_id     sum_min          sum_max  
----------  ---------------  -----------------
    38        300000.00          320000.00
    38        320000.00          340000.00
    38        340000.00          350000.00 
    38        350000.00          380000.00
    38        380000.00          380000.00
    38        380000.00          380000.00
有什么想法吗


谢谢。

考虑以下几点

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,user_id     INT NOT NULL
,sum_min      INT NOT NULL
);

INSERT INTO my_table (user_id,sum_min) VALUES
(    38    ,   30),
(    38    ,    32),
(38        ,34),
(38        ,35),
(38        ,38),
(38        ,38),
(38        ,40),
(38        ,42),
(38        ,45),
(38        ,45),
(38        ,48),
(38        ,48),
(38        ,50),
(38        ,52);

SELECT x.user_id
     , x.sum_min
     , MIN(y.sum_min) sum_max 
  FROM my_table x 
  JOIN my_table y 
    ON y.user_id = x.user_id 
   AND y.sum_min > x.sum_min 
 GROUP 
    BY user_id
     , sum_min;

+---------+---------+---------+
| user_id | sum_min | sum_max |
+---------+---------+---------+
|      38 |      30 |      32 |
|      38 |      32 |      34 |
|      38 |      34 |      35 |
|      38 |      35 |      38 |
|      38 |      38 |      40 |
|      38 |      40 |      42 |
|      38 |      42 |      45 |
|      38 |      45 |      48 |
|      38 |      48 |      50 |
|      38 |      50 |      52 |
+---------+---------+---------+

一些能让人回答你问题的实际信息怎么样?至少架构设计和期望的输出是强制性的。了解您已经尝试过的内容也会很有用。你们可能确切地知道你们在问什么,但除非你们解释清楚,否则并没有人会问不清楚!请详细说明预期输出您的预期输出与您的表相同,只是只有几行。您如何理解您是如何在没有任何条件的情况下获得这些行的,因为您的用户id也是相同的?您的主键是什么?