Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскащите с простым запросом по COUNT 
V
    Опции темы
maxipub
Дата 18.5.2017, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: 1
Всего: 1



Добрый день!

Есть таблица:

Код

CREATE TABLE IF NOT EXISTS `test6` (
  `param` int(10) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `test6`
--

INSERT INTO `test6` (`param`) VALUES
(0),
(1),
(2),
(3),
(4),
(5),
(0),
(0);


Необходимо выбрать количество столбцов с param=0, и количество всех остальных столбцов. Первое что приходит на ум:

Код

(SELECT COUNT(1) FROM `test6` WHERE param=0) UNION (SELECT COUNT(1) FROM `test6` WHERE param>0)


Но я стараюсь не использовать UNION запросы. Возможно, есть другие варианты?

ЗЫ: для упрощения создал тестовую таблицу, в реальной там еще хороший хвост в WHERE - который при таком UNION еще придется и дублировать...

Это сообщение отредактировал(а) maxipub - 18.5.2017, 16:25
PM MAIL   Вверх
Akina
Дата 18.5.2017, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Код

SELECT SUM(param=0) zero
     , SUM(param>0) positive
FROM test6;



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
maxipub
Дата 19.5.2017, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: 1
Всего: 1



Я в шоке. Не знал что эту функцию можно использовать так. smile 
PM MAIL   Вверх
Akina
Дата 19.5.2017, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Проверка условия даёт True либо False. При использовании в числовом контексте (а SUM требует именно этого) они конвертируются в 1 и 0 соответственно.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1202 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.