0

我有一个查询问题,我无法弄清楚如何执行。

让我简化表结构;

|-------------|--------|
| node_id     |  id    |
| 2610        |  1643  |
| 2610        |  1644  |
| 2610        |  1645  |
| 2610        |  1646  |
| 2611        |  1647  |
| 2611        |  1648  |

等等

我需要通过查询获取按 node_id 分组的第一条和最后一条记录,按 id 排序结果必须是:

| 2610  | 1643  | 1645  |
| 2611  | 1647  | 1648  |
4

2 回答 2

4
SELECT  node_id, MIN(id), MAX(id)
FROM    mytable
GROUP BY
        node_id
于 2013-01-15T09:44:44.657 回答
2

您可以使用以下查询:

SELECT * FROM table_name where (id = (select max(id) from table_name) || id = (select min(id) from table_name))

它将返回两条记录。首先是具有最低 id 的行,其次是具有最高 id 的记录。

于 2015-11-09T09:16:01.110 回答