powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / неупорядоченный group by
3 сообщений из 3, страница 1 из 1
неупорядоченный group by
    #39803078
Rot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток. Есть такой запрос:

select one, two, count(*) co
from tbl
group by one, two

и такой ответ:

А B 2
А С 1
B A 3

При помощи group by я получаю упорядоченные пары, но порядок не должен иметь значения. То есть для данного примера B A и A B одно и то же. Как можно изменить запрос, чтобы получить

A B 5
A C 1
или
A C 1
B A 5
...
Рейтинг: 0 / 0
неупорядоченный group by
    #39803084
chidoriami
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rot,

ну как вариант:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with tbl as (
            select 'A' one, 'B' two from dual
  union all select 'B' one, 'A' two from dual
  union all select 'A' one, 'B' two from dual
  
  union all select 'A' one, 'C' two from dual
  union all select 'C' one, 'A' two from dual
)
select 
        least(one, two)||''||greatest(one, two)
       , count(*) co
  from tbl
 group by least(one, two)||''||greatest(one, two)


это если в полях one и two нет null значений - least/greatest возвратят null, если хотя бы один из аргументов is null
...
Рейтинг: 0 / 0
неупорядоченный group by
    #39803087
Rot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chidoriami,

Точно. Еще можно сравнение в case использовать, чтобы переносимо было. Спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / неупорядоченный group by
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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