从 table 中获取值按升序排列的行数,如 1、2、3,直到发生中断,如 1、2、3、7、8、9、10
Get count of rows having values in ascending sequence like 1,2,3 until a break occurs like 1,2,3,7,8,9,10 from table
ip_availableTable数据为:
ip_address
parent
10010010024
1987
10010010026
1987
10010010027
1987
10010010033
1987
10010010034
1987
10010010035
1987
10010010036
1987
10010010037
1987
10010010090
2010
同样还有更多ip_addresses具有其他父值
我想要这样的结果集
ip_address_min
parent
count
10010010024
1987
3
10010010033
1987
5
10010010090
2010
1
数据库是 MySQL
每个正则序列都要计数,不管父值是否重复。
多一点细节下次会有所帮助,例如包括您的 table 结构。
但我相信这会对你有所帮助。
SELECT MIN(ip_address) as ip_address_min, MIN(parent) as parent, COUNT(ip_address) as count
FROM ip_available
GROUP BY LEFT(ip_address,length(ip_address)-1);
ip_availableTable数据为:
ip_address | parent |
---|---|
10010010024 | 1987 |
10010010026 | 1987 |
10010010027 | 1987 |
10010010033 | 1987 |
10010010034 | 1987 |
10010010035 | 1987 |
10010010036 | 1987 |
10010010037 | 1987 |
10010010090 | 2010 |
同样还有更多ip_addresses具有其他父值
我想要这样的结果集
ip_address_min | parent | count |
---|---|---|
10010010024 | 1987 | 3 |
10010010033 | 1987 | 5 |
10010010090 | 2010 | 1 |
数据库是 MySQL 每个正则序列都要计数,不管父值是否重复。
多一点细节下次会有所帮助,例如包括您的 table 结构。 但我相信这会对你有所帮助。
SELECT MIN(ip_address) as ip_address_min, MIN(parent) as parent, COUNT(ip_address) as count
FROM ip_available
GROUP BY LEFT(ip_address,length(ip_address)-1);