首先,我的英语基本。抱歉。 第二件事,这里最重要的是:我找不到做简单查询的方法。我的桌子是这样的:
------------------------------------------ id_det_iti | id_iti | orden_iti| id_ciudad -------------------------------------------- 1 | 1 | 1 | 374 2 | 1 | 2 | 25 3 | 1 | 3 | 241 4 | 2 | 1 | 34 5 | 2 | 2 | 22 6 | 2 | 3 | 352 7 | 2 | 4 | 17 --------------------------------------------
然后,我想得到这样的结果:
------------------------------------------ id_iti | min | id_ciudad | max | id_ciudad ------------------------------------------ 1 | 1 | 374 | 3 | 241 2 | 1 | 34 | 4 | 17 ------------------------------------------
我需要通过id_iti显示同一行组中的最大值和最小值。 我试图使用完全连接,但我正在使用sqlite,这不是一个选项。我花了很长时间尝试不同的选择,但我找不到解决方案。我希望你们能帮助我。 提前谢谢!
编辑:
SELECT a.id_iti, c.id_ciudad, d.id_ciudad
FROM detalle_itinerario as a,
(SELECT MAX(orden_iti),id_ciudad, id_iti FROM detalle_itinerario) AS c
INNER JOIN
(SELECT MIN(orden_iti),id_ciudad, id_iti FROM detalle_itinerario) AS d
ON c.id_iti=d.id_iti
GROUP BY a.id_iti;
这只是我的一次尝试,但我只得到了第一次巧合的价值。
答案 0 :(得分:0)
首先,使用简单查询获取每个组的最小/最大值:
SELECT id_iti,
MIN(orden_iti) AS min,
MAX(orden_iti) AS max,
FROM detalle_itinerario
GROUP BY id_iti;
您可以使用这些值连接回原始表:
SELECT a.id_iti,
a.min,
a2.id_ciudad,
a.max,
a3.id_ciudad
FROM (SELECT id_iti,
MIN(orden_iti) AS min,
MAX(orden_iti) AS max
FROM detalle_itinerario
GROUP BY id_iti) AS a
JOIN detalle_itinerario AS a2 ON a.id_iti = a2.id_iti AND a.min = a2.orden_iti
JOIN detalle_itinerario AS a3 ON a.id_iti = a3.id_iti AND a.max = a3.orden_iti;