Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2011, 13:26   #1
nhr
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 25
По умолчанию Работа с функцией count()

проблема вот в чем:
имеется таблица и в ней надо подсчитать количество ВСЕХ ненулевых строк в каждом столбце.
Подскажите как?
nhr вне форума Ответить с цитированием
Старый 04.07.2011, 14:09   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
SELECT
    SUM(CASE WHEN pole1<>0 THEN 1 ELSE 0 END) AS Count1,
    SUM(CASE WHEN pole2<>0 THEN 1 ELSE 0 END) AS Count2,
...
  FROM Tablica1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.07.2011, 14:12   #3
nhr
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 25
По умолчанию

спасибо, сейчас попробую(:
nhr вне форума Ответить с цитированием
Старый 04.07.2011, 14:16   #4
nhr
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 25
По умолчанию

а можно это все как-нибудь в один запрос объединить?
nhr вне форума Ответить с цитированием
Старый 04.07.2011, 14:18   #5
nhr
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 25
По умолчанию

например, имеем
select count(def_monitoring_type)from devices_active where def_monitoring_type <>0
select count(auto_conf_date)from devices_active where auto_conf_date <>0
select count(email_notify)from devices_active where email_notify <>0

и как их объединить?
nhr вне форума Ответить с цитированием
Старый 04.07.2011, 14:19   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от nhr Посмотреть сообщение
а можно это все как-нибудь в один запрос объединить?
А это и есть один запрос, сколько нужно полей анализировать - столько строчек SUM
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.07.2011, 14:23   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

nhr, давно бы уже привели пример заполнения данных и что Вы хотите в итоге получить...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.07.2011, 14:33   #8
nhr
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 25
По умолчанию

в итоге я хочу получить, чтобы мне он выдавал количество ненулевых строк не каждого столбца по отдельности, а по всей таблице
допустим мы имеем таблицу, в которой три столбца, в первом столбце 3 ненулевых, во втором-1, в третьем -5. в приведенном выше коде выводится все по отдельности(т.е. надо вызывать каждые раз новую ф-ию), а надо чтобы выводил 9!
nhr вне форума Ответить с цитированием
Старый 04.07.2011, 14:41   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Можно так попробовать
Код:
SELECT 
  (select count(def_monitoring_type)from devices_active where def_monitoring_type <>0)+
  (select count(auto_conf_date)from devices_active where auto_conf_date <>0)+
  (select count(email_notify)from devices_active where email_notify <>0) AS count1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.07.2011, 14:49   #10
nhr
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 25
По умолчанию

Спасибо, Аватар, А не подскажешь, как еще вывести не только нулевые значения, но и пустые ячейки?
nhr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с функцией scasb alexsvk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 20.11.2012 03:42
Работа с функцией IIF Обсидиан Microsoft Office Access 3 13.10.2010 08:59
Работа с функцией (С) ordoss Помощь студентам 8 03.01.2010 19:02
count(*) as dedyshka PHP 8 28.12.2009 15:53
Работа с функцией islower() Greynvi4 Общие вопросы C/C++ 3 07.08.2009 21:37