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

Откуда:
Сообщений: 134
Народ кто подсаблить сможет? Оч надо ....
Есть 4 селекта по каунатам ....как моно в один его сбить?

"SELECT count(Mk) as Acc from Mark
"SELECT count(Mk) as Ass1 from Mark where Mk = '3'
"SELECT count(Mk) as Ass2 from Mark where Mk = '2'
"SELECT count(Mk) as Ass3 from Mark where Mk = '1'
21 май 07, 15:19    [4163713]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
Vadim_Maximov
Member

Откуда: Москва
Сообщений: 3571
Vitttttal
Народ кто подсаблить сможет? Оч надо ....
Есть 4 селекта по каунатам ....как моно в один его сбить?

"SELECT count(Mk) as Acc from Mark
"SELECT count(Mk) as Ass1 from Mark where Mk = '3'
"SELECT count(Mk) as Ass2 from Mark where Mk = '2'
"SELECT count(Mk) as Ass3 from Mark where Mk = '1'

select count(mk) acc,
       count(decode(mk, '3',1,0)) ass1
       count(decode(mk, '2',1,0)) ass2
       count(decode(mk, '1',1,0)) ass3
21 май 07, 15:22    [4163726]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
Vadim_Maximov
Member

Откуда: Москва
Сообщений: 3571
Ну запятые там сам расставишь :)
21 май 07, 15:25    [4163735]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Vadim_Maximov
Ну запятые там сам расставишь :)


Типа "казнить нельзя помиловать" ?
21 май 07, 15:26    [4163741]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
alf123
Guest
Vitttttal
Народ кто подсаблить сможет? Оч надо ....
Есть 4 селекта по каунатам ....как моно в один его сбить?

"SELECT count(Mk) as Acc from Mark
"SELECT count(Mk) as Ass1 from Mark where Mk = '3'
"SELECT count(Mk) as Ass2 from Mark where Mk = '2'
"SELECT count(Mk) as Ass3 from Mark where Mk = '1'


with tabb
 as 
 (select 1 as mk from dual 
 union all
 select 1 as mk from dual 
 union all
 select 2 as mk from dual 
 union all
 select 2 as mk from dual 
 union all
 select 2 as mk from dual 
 union all
 select 3 as mk from dual 
 )
 select count(mk) over (), count(mk), mk  from tabb group by mk
21 май 07, 15:26    [4163742]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
Proteus
Member

Откуда:
Сообщений: 1348
не совсем понятно что подразумевается "под сбить в один"
Тебе надо получить 4 числа в одной строке или 4 строки?
21 май 07, 15:31    [4163764]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
Vitttttal
Member

Откуда:
Сообщений: 134
Спасибки, просто классика ....сам так и не допер
21 май 07, 15:46    [4163883]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
Oleg Ivanov
Member

Откуда: Киев
Сообщений: 289
Vadim_Maximov
...
       count(decode(mk, '3',1,0)) ass1
...

Только
...
       count(decode(mk, '3',1)) ass1
...
21 май 07, 16:30    [4164303]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
Elic
Member

Откуда:
Сообщений: 29979
Oleg Ivanov
Vadim_Maximov
count(decode(mk, '3',1,0)) ass1
Только
count(decode(mk, '3',1)) ass1
Тогда уж
count(decode(mk, '3', 0)) ass1
:)
21 май 07, 16:33    [4164337]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
Oleg Ivanov
Member

Откуда: Киев
Сообщений: 289
Elic
Oleg Ivanov
Vadim_Maximov
count(decode(mk, '3',1,0)) ass1
Только
count(decode(mk, '3',1)) ass1
Тогда уж
count(decode(mk, '3', 0)) ass1
:)

Можно и
count(decode(mk, '3', -666, NULL)) ass1
главное чтобы для значений <> '3' возвращался NULL, а не что-то другое.

Или я не понял шутки?
21 май 07, 16:49    [4164475]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
Vadim_Maximov
Member

Откуда: Москва
Сообщений: 3571
Elic
Oleg Ivanov
Vadim_Maximov
count(decode(mk, '3',1,0)) ass1
Только
count(decode(mk, '3',1)) ass1
Тогда уж
count(decode(mk, '3', 0)) ass1
:)
Да, протупил, хотел sum воткнуть :)
21 май 07, 16:52    [4164493]     Ответить | Цитировать Сообщить модератору
 Re: Несколько selectov в однин запрос  [new]
Elic
Member

Откуда:
Сообщений: 29979
Oleg Ivanov
Или я не понял шутки?
Если экономить, то экономить до конца. А ноль занимает меньше байт :)
21 май 07, 18:05    [4164892]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить