powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом связанным с выборкой по дате
3 сообщений из 3, страница 1 из 1
Помогите с запросом связанным с выборкой по дате
    #33441647
topchan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица
data id
2005-12-14 03:06:42+02 20
2005-12-14 03:06:42+02 40
2005-12-15 03:06:42+02 50
2005-12-16 03:06:42+02 40
2005-12-16 03:06:42+02 20
2005-12-16 03:06:42+02 50
2005-12-16 03:06:42+02 60
(последний ряд цифр 20, 40 ... относится к id)

Запрос должен выводить данные в таком виде

дата всего 0 < 30 30 < 50 50 < 100
2005-12-14 2 1 1 0
2005-12-15 1 0 0 1
2005-12-16 4 1 1 2
(0<30, 30<50, 50<100 это группы куда мы распределяем значения id)

то есть для каждого дня мы подсчитываем сколько всего есть значений и растасовываем их по группам
...
Рейтинг: 0 / 0
Помогите с запросом связанным с выборкой по дате
    #33443267
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topchanЕсть таблица
data id
2005-12-14 03:06:42+02 20
2005-12-14 03:06:42+02 40
2005-12-15 03:06:42+02 50
2005-12-16 03:06:42+02 40
2005-12-16 03:06:42+02 20
2005-12-16 03:06:42+02 50
2005-12-16 03:06:42+02 60
(последний ряд цифр 20, 40 ... относится к id)

Запрос должен выводить данные в таком виде

дата всего 0 < 30 30 < 50 50 < 100
2005-12-14 2 1 1 0
2005-12-15 1 0 0 1
2005-12-16 4 1 1 2
(0<30, 30<50, 50<100 это группы куда мы распределяем значения id)

то есть для каждого дня мы подсчитываем сколько всего есть значений и растасовываем их по группамВот такой вариант попробуй, должен работать. Только замени оракловую функцию усечения даты TRUNC на что-нибудь подходящее из PostgreSQL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
select dt, 
       count( 1 )      as counter,
       sum(less_30)  as sum_less_30,
       sum(less_50)  as sum_less_50,
       sum(less_100) as sum_less_100
  from (
          select trunc(data) /*
                                 TRUNC - в Oracle это функция усечения порции времени в дате,
                                 Аналог такой функции в PostgrеSQL подбери сам, я его не знаю
                             */
                   as dt,
                 case 
                    when id <  30  then  1 
                    else  0 
                 end as less_30,
                 case
                    when id >=  30  and id <  50  then  1 
                    else  0 
                 end less_50,
                 case
                    when id >=  50  and id <  100  then  1 
                    else  0 
                 end as less_100
            from "ТВОЯ_ТАБЛИЦА"
       )
group by dt

Query finished, retrieving results...

     DT      COUNTER  SUM_LESS_30  SUM_LESS_50  SUM_LESS_100
-----------  -------  -----------  -----------  ------------
 14 -дек- 2005          2              1              1               0 
 15 -дек- 2005          1              0              0               1 
 16 -дек- 2005          4              1              1               2 

 3  row(s) retrieved
...
Рейтинг: 0 / 0
Помогите с запросом связанным с выборкой по дате
    #33447243
topchan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом связанным с выборкой по дате
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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