powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / сортировка по месяцам
7 сообщений из 7, страница 1 из 1
сортировка по месяцам
    #39492872
vanchok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подскажите, как отсортировать месяца, чтобы они шли в хронологическом порядке(январь,февраль). а то у меня идут так, как вытягиваются из таблицы
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT month,
SUM(case when услуга = 'Регистрация пользователя ЕСИА' then заявления end ) as count1,
SUM(case when услуга = 'Восстановление пароля пользователя ЕСИА' then заявления end ) as count2,
SUM(case when услуга = 'Получение статуса заявки на регистрацию ЕСИА' then заявления end ) as count3,
SUM(case when услуга = 'Подтверждение кодов регистрации ЕСИА' then заявления end ) as count4
FROM(
SELECT
  AVG(EXTRACT(EPOCH FROM o.order_date AT TIME ZONE 'UTC')) / 10000000000 AS d,
  to_char(o.order_date, 'dd.mm.yyyy')                                    AS дата,
  COUNT(*)                                                                     AS заявления,
  substring(m.title FROM 0 FOR 48)                                       AS филиал,
  substring(u.title FROM 0 FOR 48)                                       AS оператор,
  o.service_title                               AS услуга,
  o.order_datemonth as month
FROM smartcenterorder o, smartcentermfc m, smartcenteruser u
WHERE o.order_date BETWEEN $P{from} AND $P{to}
GROUP BY дата, филиал, оператор, услуга,month
) as fo
GROUP BY month
...
Рейтинг: 0 / 0
сортировка по месяцам
    #39492889
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORDER BY month
...
Рейтинг: 0 / 0
сортировка по месяцам
    #39492899
vanchok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBat,

не получится он отсортирует по алфамиту, январь как бы последний)
...
Рейтинг: 0 / 0
сортировка по месяцам
    #39492913
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vanchokLeXa NalBat,

не получится он отсортирует по алфамиту, январь как бы последний)

У вас что названия месяцев в базе в виде текстовых полей лежат а не в виде номеров месяцев?????
Тогда страдать :).
...
Рейтинг: 0 / 0
сортировка по месяцам
    #39492917
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

месяцев всего 12. запихнуть "преобразование" в CASE и сортировать по результату

case month
when 'Январь' then 1
when 'Февраль' then 2
...
...
when 'Декабрь' then 12
end.

Или преобразовать на лету строку в дату и сортировать по результату преобразования...
...
Рейтинг: 0 / 0
сортировка по месяцам
    #39492943
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у вас же там дата битым словом лежит , нет ?
vanchokНе подскажите, как отсортировать месяца, чтобы они шли в хронологическом порядке(январь,февраль). а то у меня идут так, как вытягиваются из таблицы
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SELECT month,
SUM(case when услуга = 'Регистрация пользователя ЕСИА' then заявления end ) as count1,
SUM(case when услуга = 'Восстановление пароля пользователя ЕСИА' then заявления end ) as count2,
SUM(case when услуга = 'Получение статуса заявки на регистрацию ЕСИА' then заявления end ) as count3,
SUM(case when услуга = 'Подтверждение кодов регистрации ЕСИА' then заявления end ) as count4
FROM(
SELECT
  AVG(EXTRACT(EPOCH FROM o.order_date AT TIME ZONE 'UTC')) / 10000000000 AS d,
  to_char(o.order_date, 'dd.mm.yyyy')                                    AS дата,
-- так например
  ,extract('month' FROM o.order_date)::int             AS month
--
  COUNT(*)                                                                     AS заявления,
  substring(m.title FROM 0 FOR 48)                                       AS филиал,
  substring(u.title FROM 0 FOR 48)                                       AS оператор,
  o.service_title                               AS услуга
--,  o.order_datemonth as month -- yf[eq
FROM smartcenterorder o, smartcentermfc m, smartcenteruser u
WHERE o.order_date BETWEEN $P{from} AND $P{to}
GROUP BY дата, филиал, оператор, услуга,month
) as fo
GROUP BY month
ORDER BY month



или нопейсать F(month text) returns integer и попользовать.

или поджойниться на

Код: sql
1.
2.
--SET lc_time TO 'ru_RU.UTF-8';
SELECT to_char( make_date(2000,g,1), 'TMmonth') , g FROM generate_series(1, 12) g




и т.п. и т.д.

но за текстовые мансы в базе непременно убить нахер всю команду. в целях профилактики и карантина.
...
Рейтинг: 0 / 0
сортировка по месяцам
    #39492988
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqно за текстовые мансы в базе непременно убить нахер всю команду. в целях профилактики и карантина.

Вот редкий случай когда я такими кардинальными мерами полностью согласен. В целях недопущения в дальнейшем.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / сортировка по месяцам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]