powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Использование group by в подзапросах
3 сообщений из 3, страница 1 из 1
Использование group by в подзапросах
    #39976714
DeLipFin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините что пишу тупые вопросы!

Как правильно составить запрос, чтобы группировка была во всех столбцах.
Сейчас же два столбца отображаются правильно, а вот третий не ту информацию показывает.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select (case when queue_id=1 then '1ая линия техподдержки' 
	when queue_id=6 then 'Телеком'
	when queue_id=12 then 'Информационная безопасность'
	when queue_id=13 then 'СКУД'
	when queue_id=14 then 'Видеонаблюдение' end) as Очередь, count(id) as Созданные,
 
(select count(id) as Закрытые from ticket where (create_time between '2020-06-01 00:00:00' and '2020-06-30 24:00:00') and 
(change_time between '2020-06-01 00:00:00' and '2020-06-30 24:00:00') and ticket_state_id in (2,3,5,7,8,9) and queue_id in (1,6,12,13,14))

from ticket
where (create_time between '2020-06-01 00:00:00' and '2020-06-30 24:00:00') and queue_id in (1,6,12,13,14)
group by queue_id 
order by 1
...
Рейтинг: 0 / 0
Использование group by в подзапросах
    #39976774
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DeLipFin,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select 
  (case when queue_id=1 then '1ая линия техподдержки' 
	when queue_id=6 then 'Телеком'
	when queue_id=12 then 'Информационная безопасность'
	when queue_id=13 then 'СКУД'
	when queue_id=14 then 'Видеонаблюдение' end) as sQueue,   
  count(id) as nAll,
  sum(case when change_time between '2020-06-01 00:00:00' and '2020-06-30 24:00:00') and ticket_state_id in (2,3,5,7,8,9) then 1 else 0 end) nClosed 
from ticket
where  
  create_time between '2020-06-01 00:00:00' and '2020-06-30 24:00:00') 
  and queue_id in (1,6,12,13,14)
group by queue_id 
order by 1
...
Рейтинг: 0 / 0
Использование group by в подзапросах
    #39977365
Kr_Yury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeLipFin, можно ещё так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select 
  (case when queue_id=1 then '1ая линия техподдержки' 
	when queue_id=6 then 'Телеком'
	when queue_id=12 then 'Информационная безопасность'
	when queue_id=13 then 'СКУД'
	when queue_id=14 then 'Видеонаблюдение' end) as sQueue,   
  count(id) as nAll,
  count(case when change_time between '2020-06-01 00:00:00' and '2020-06-30 24:00:00') and ticket_state_id in (2,3,5,7,8,9) then 1 end) nClosed 
from ticket
where  
  create_time between '2020-06-01 00:00:00' and '2020-06-30 24:00:00') 
  and queue_id in (1,6,12,13,14)
group by queue_id 
order by 1

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


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