powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подсчет количества строк
23 сообщений из 23, страница 1 из 1
Подсчет количества строк
    #39480949
Kaban77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Стало интересно как решается следующая задачка. Есть таблица:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
with t (id) as
(
     select 0 from dual
     union all
     select 0 from dual
     union all
     select 0 from dual
     union all
     select 1 from dual
     union all
     select 1 from dual
     union all
     select 0 from dual
     union all
     select 1 from dual
)
select * from t;


Необходимо в одном столбце вывести количество нулей, а в другом количество единиц.
Гугл и поиск по форуму ответа не дали. Буду благодарен за подсказки.
Спасибо!
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39480952
Garraty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
with t (id) as
(
     select 0 from dual
     union all
     select 0 from dual
     union all
     select 0 from dual
     union all
     select 1 from dual
     union all
     select 1 from dual
     union all
     select 0 from dual
     union all
     select 1 from dual
)
select count(decode(t.id, 0, 1, null)) cnt_0, count(decode(t.id, 1, 1, null)) cnt_1 from t;
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39480969
Kaban77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GarratyНапример так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
with t (id) as
(
     select 0 from dual
     union all
     select 0 from dual
     union all
     select 0 from dual
     union all
     select 1 from dual
     union all
     select 1 from dual
     union all
     select 0 from dual
     union all
     select 1 from dual
)
select count(decode(t.id, 0, 1, null)) cnt_0, count(decode(t.id, 1, 1, null)) cnt_1 from t;



Спасибо огромное!
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481046
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
 17  select * from t pivot (count(*) for id in (0, 1));

         0          1
---------- ----------
         4          3
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481167
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Можкт и себе поизголяться?

Код: plsql
1.
select -1*sum(id-1) Cnt_0, sum(id) Cnt_1 from t where id in (0,1);
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481347
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXLМожкт и себе поизголяться?Подучи русский и попробуй сформулировать пока отсутствующую мысль ещё раз.
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481702
Фотография Ozornitca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я все время case использую ))

а что лучше ?
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481715
Ozornitcaа я все время case использую ))

а что лучше ?если версия от 9i и выше 0 то без разницы. а если ниже - то кроме decode и выбора-то нет.
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481725
ORA__SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - ЭхOzornitcaа я все время case использую ))
а что лучше ?если версия от 9i и выше 0 то без разницы. а если ниже - то кроме decode и выбора-то нет.Ага, особенно когда появляется null
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481741
Добрый Э - Эхкроме decode и выбора-то нет.для чисел уже привели вариант.
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481752
Фотография Ozornitca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я пишу case (nvl(f,0))

плохо ? лучше декод ?
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481873
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ozornitcaа я пишу case (nvl(f,0))

плохо ? лучше декод ?
авторНеобходимо в одном столбце вывести количество нулей, а в другом количество единиц.
Гугл и поиск по форуму ответа не дали. Буду благодарен за подсказки.


причем сдесь nvl(f,0)?

.....
stax
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481880
Фотография Ozornitca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..Ozornitcaа я пишу case (nvl(f,0))

плохо ? лучше декод ?
авторНеобходимо в одном столбце вывести количество нулей, а в другом количество единиц.
Гугл и поиск по форуму ответа не дали. Буду благодарен за подсказки.


причем сдесь nvl(f,0)?

.....
stax

а вы тему читали ? про появление null?
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481886
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ozornitcastax..пропущено...

пропущено...


причем сдесь nvl(f,0)?

.....
stax

а вы тему читали ? про появление null?
и чем там null мешает предложенним вариантам (Elic+MaximaXXL) решения конкретной задачи?

null не 0, игнорируем, а вот с nvl результат
авторНеобходимо в одном столбце вывести количество нулей, а в другом количество единиц.
будет неверным


.....
stax
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39481997
kernA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kaban77,

может усложним задачу? Помимо значений 0 и 1 могут быть другие значения и их тоже нужно вывести )
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39482009
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kernAKaban77,

может усложним задачу? Помимо значений 0 и 1 могут быть другие значения и их тоже нужно вывести )все стотыщпиццот значений?
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39482010
kernAможет усложним задачу? Помимо значений 0 и 1 могут быть другие значения и их тоже нужно вывести )Любое условие можно привести к 1 - трю и 0 - остальное.
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39482049
ORA__SQLАга, особенно когда появляется nullда хоть два null-а сразу. умение декода "сравнивать" null-ы не делает его лучше или хуже кейса. любую логику можно построить на любом из этих SQL-выражений. кому-то удобнее и привычнее decode, кому-то гибче и нагляднее CASE.
ну или приведи пример с нуллами, который на декодном варианте прям вот разительно отличается от кейсового. иначе непонятна суть твоей мысли и неясно чего ты хотел сказать.
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39482060
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхлюбую логику можно построить на любом из этих SQL-выражений.За ради развлечений можно обойтись даже без них обоих.
decode удобен для равенства. Для более комбинированных условий проще case и, если уж выбирать что-то одно, то case.
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39482149
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ozornitcaобычно умные люди не тратят времяТ.е. ты дурачило-простофило, у которого умишки нет, а вот соплей со временем предостаточно?
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39482150
Фотография Ozornitca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicOzornitcaобычно умные люди не тратят времяТ.е. ты дурачило-простофило, у которого умишки нет, а вот соплей со временем предостаточно?

а я кого-то здесь критикую?
ну и пока мне есть чему учиться, я не отрицаю. Много еще чему учиться

а вот вы , кстати, не вылазите с форума, причем, на моей памяти неуместной и "не по делу" критики от вас гораздо больше, нежели конструктивных сообщений по теме.

не хочу делать никаких выводов, мне это неинтересно. Решайте все для себя сами
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39482197
ORA__SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - ЭхORA__SQLАга, особенно когда появляется nullда хоть два null-а сразу. умение декода "сравнивать" null-ы не делает его лучше или хуже кейса. любую логику можно построить на любом из этих SQL-выражений. кому-то удобнее и привычнее decode, кому-то гибче и нагляднее CASE.
ну или приведи пример с нуллами, который на декодном варианте прям вот разительно отличается от кейсового. иначе непонятна суть твоей мысли и неясно чего ты хотел сказать.У меня совсем нет желания повторять логику "eq" через case ...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select a,b, decode(a,b,1,0) eq
from (
select null a, null b from dual union all
select null a, 1    b from dual union all
select 1    a, null b from dual union all
select 1    a, 1    b from dual union all
select 1    a, 2    b from dual 
)
...
Рейтинг: 0 / 0
Подсчет количества строк
    #39482218
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Добрый Э - Эхлюбую логику можно построить на любом из этих SQL-выражений.За ради развлечений можно обойтись даже без них обоих.
decode удобен для равенства. Для более комбинированных условий проще case и, если уж выбирать что-то одно, то case.
поддерживаю
я по старинке/привычке decode использую для >.< и то стараюсь перейти на case

почти ничего не поменялось
Decode или Case

https://groups.google.com/forum/?hl=uk#!topic/relcom.comp.dbms.oracle/61xsBlP4dsI

.....
stax
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подсчет количества строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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