我有一张表格:
userid rank name
-------------------
1 4 raj
1 90 frank
1 100 neeta
1 123 liz
2 2 liz
2 20 neeta
2 23 frank
2 222 raj
Run Code Online (Sandbox Code Playgroud)
我需要把它转换成
userid min_rank next_min_rank
-------------------------------
1 raj frank
2 liz neeta
Run Code Online (Sandbox Code Playgroud)
我一直在网上搜索这个问题很长一段时间但找不到解决方案.
能否请你帮忙?
我们收集了大量数据,并且正在尝试在我们的数据库上构建一个系统,该系统可以将纬度 - 经度信息转换为城市和国家.我们不想使用任何谷歌Api.我们想要设置我们自己的服务器来执行此操作.
我正在研究一个数据库,它是一个非常大的数据库,拥有13亿行和35列.这是检查表状态后得到的结果:
Name:Table Name
Engine:InnoDB
Version:10
Row_format:Compact
Rows:12853961
Avg_row_length:572
Data_length:7353663488
Max_data_length:0
Index_length:5877268480
Data_free:0
Auto_increment:12933138
Create_time:41271.0312615741
Update_time:NULL
Check_time:NULL
Collation:utf8_general_ci
Checksum:NULL
Create_options:
Comment:InnoDB free: 11489280 kB
Run Code Online (Sandbox Code Playgroud)
我面临的问题是即使单个选择查询也需要花费太多时间来处理,例如查询 Select * from Table_Name limit 0,50000需要大约2.48分钟这是预期的吗?
我必须做一份报告,其中我必须使用整个历史数据,即整个1.3亿行.我可以批量执行此操作,但之后我将不得不一次又一次地运行多次花费太多时间的查询.
当简单查询花费这么多时间时,我无法执行任何其他需要连接和case语句的复杂查询.