我的桌子看起来像
+----+------+----+
| Id | from | to |
+----+------+----+
| 1 | 1 | 10 |
| 1 | 10 | 12 |
| 1 | 12 | 23 |
| 1 | 24 | 26 |
| 2 | 2 | 8 |
| 2 | 3 | 4 |
| 2 | 4 | 10 |
+----+------+----+
现在,我想按Id
进行分组,并选择最跨越的范围。因此,结果表应该如下所示:
+----+-------------+
| Id | range |
+----+-------------+
| 1 | 1-23, 24-26 |
| 2 | 2-10 |
+----+-------------+
我甚至不知道怎么开始。
提前感谢您的帮助!
发布于 2021-12-18 09:38:43
您可以通过使用MySQL函数编写一个CONCAT()
选择查询来实现类似的功能。您可以使用GROUP BY
对数据进行分类。但请记住,from
、to
和range
是MySQL中的保留词。因此,我将使用fooFrom
、fooRange
和fooTo
作为这个示例的列名
示例:
SELECT Id, CONCAT(fooFrom, "-", fooTo) AS "fooRange" FROM fooTable GROUP BY id;
此示例代码将输出:
id | fooRange
1 | 5-6
2 | 12-88
但我不知道如何将所有内容连接到一个列值中。
https://stackoverflow.com/questions/70402294
复制相似问题