Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Подскажите по группировке, как такое можно сделать проще.  [new]
Alex2001
Member

Откуда:
Сообщений: 186
create table t1(
   a number,
   b number);
   insert into t1 values (2,1);
   insert into t1 values (1,1);
select case when b=1 then 1 else a end, b from t1 group by b,a;
Результат такого запроса выдает естественно 2 строчки, а требуется, чтобы сливались в одну. Спасибо большое заранее. Есть какое-то решение без под-запросов или временных таблиц?
14 ноя 11, 14:51    [11593466]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по группировке, как такое можно сделать проще.  [new]
ORA__SQL
Member

Откуда: Moscow
Сообщений: 1774
Alex2001,
WITH t AS (
SELECT 1 a, 2 b FROM dual UNION ALL
SELECT 3 a, 5 b FROM dual UNION ALL
SELECT 5 a, 3 b FROM dual UNION ALL
SELECT 2 a, 1 b FROM dual )

SELECT LEAST(a,b),GREATEST(a,b), COUNT(*)
 FROM t
GROUP BY LEAST(a,b),GREATEST(a,b)
14 ноя 11, 14:55    [11593503]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по группировке, как такое можно сделать проще.  [new]
AmKad
Member

Откуда:
Сообщений: 5222
Alex2001,

+ С временными таблицами, объектными типами и хп на java
group by b,case when b=1 then 1 else a end
14 ноя 11, 14:55    [11593517]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по группировке, как такое можно сделать проще.  [new]
Alex2001
Member

Откуда:
Сообщений: 186
Спасибо большое.
14 ноя 11, 15:05    [11593620]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по группировке, как такое можно сделать проще.  [new]
AmKad
Member

Откуда:
Сообщений: 5222
Alex2001,

+
distinct
14 ноя 11, 15:13    [11593707]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить