Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подсчет количества строк / 23 сообщений из 23, страница 1 из 1
01.07.2017, 19:25
    #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
01.07.2017, 20:13
    #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
01.07.2017, 21:16
    #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
02.07.2017, 07:07
    #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
02.07.2017, 14:09
    #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
02.07.2017, 20:59
    #39481347
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк
MaximaXXLМожкт и себе поизголяться?Подучи русский и попробуй сформулировать пока отсутствующую мысль ещё раз.
...
Рейтинг: 0 / 0
03.07.2017, 13:11
    #39481702
Ozornitca
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк
а я все время case использую ))

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

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

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

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


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

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

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


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

.....
stax

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

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


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

.....
stax

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

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


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

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

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

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

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

не хочу делать никаких выводов, мне это неинтересно. Решайте все для себя сами
...
Рейтинг: 0 / 0
04.07.2017, 08:44
    #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
04.07.2017, 09:31
    #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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подсчет количества строк / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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