том, что написано на первом скрине, странно срабатывает ORDER BY schedule.from. Хотелось бы в результате запроса получить дни в порядке возрастания, но пока они почему-то выводятся в таком виде. В чем может быть проблема?
create table schedule("addressId" int, "from" int, "to" int);
INSERT INTO schedule ("addressId", "from", "to")
values (1, 60900, 62359);
INSERT INTO schedule ("addressId", "from", "to")
values (1, 00000, 00200);
INSERT INTO schedule ("addressId", "from", "to")
values (1, 11000, 12100);
INSERT INTO schedule ("addressId", "from", "to")
values (1, 21000, 22100);
INSERT INTO schedule ("addressId", "from", "to")
values (1, 31000, 32100);
INSERT INTO schedule ("addressId", "from", "to")
values (1, 41000, 42100);
INSERT INTO schedule ("addressId", "from", "to")
values (1, 51000, 52100);
INSERT INTO schedule ("addressId", "from", "to")
values (1, 01000, 02100);
SELECT
"day",
array_agg("from") "from",
array_agg("to") "to"
FROM
(SELECT
div("from", 10000) AS "day",
mod("from", 10000) AS "from",
mod("to", 10000) AS "to"
FROM
schedule
WHERE
"addressId" = 1
ORDER BY
schedule.from) s
GROUP BY
"day"
Вот как сейчас выглядит результат day | from | to -----+----------+------------ 0 | {0,1000} | {200,2100} 6 | {900} | {2359} 5 | {1000} | {2100} 1 | {1000} | {2100} 2 | {1000} | {2100} 4 | {1000} | {2100} 3 | {1000} | {2100}
ORDER BY schedule.from не отрабатывает никак, поскольку результат используется как отношэние во FROM -- а у отношэний нет какого-то порядка кортэжей. Этой информацыи просто нет во FROM -- поскольку эта сущность, которая туда поступает принцыпиально такой информацыи в себе не имеет.
Обсуждают сегодня