MYSQL COUNT
у меня такой вопрос, надо подсчитать только те записи в которых отсутствует значение "0" (ноль).
примерно следующее
SELECT COUNT( IF(columna != 0)) FROM TABLEA;
заранее спасибо
у меня такой вопрос, надо подсчитать только те записи в которых отсутствует значение "0" (ноль).
примерно следующее
SELECT COUNT( IF(columna != 0)) FROM TABLEA;
заранее спасибо
Стоит почитать про основы SQL: http://www.codenet.ru/cat/Applications/Database/SQL/
COUNT считает количество строк в результате выполнения подзапроса
если используются джойны, то можно, например, все обернуть в подзапрос
посчитать кол-во значений в столбце не равных 0
раз
п.с.
только в синтаксисе мог налажать, ибо уже не помню как там в mySQL
???
посчитать кол-во значений в столбце не равных 0
раз
п.с.
только в синтаксисе мог налажать, ибо уже не помню как там в mySQL
золотой запрос, не знал..., но пару раз в нете "натыкался" сейчас логику вроде понял, спасибо большое всем за участие
В моем случае это тот запрос который мне нужен
???
Конкретно в такой форме - ничем впринципе. Отличия начинаются, если это часть более сложного запроса, в котором требуется обработать все записи, даже те, где colomn1 = 0, но при этом в счетчике нужно учитывать только ненулевые.
Запросы неэквивалентны, если colomn1 может быть null. Не уверен насчёт MySQL.
Да, насчет нулл полностью согласен, неточно выразился. В конце концов, если известно что колонка nullable, можно просто добавить MyColumn is null или еще как нулл обработать - и разницы в результатх снова не будет. Однако эквивалентны запросы все равно не будут, хотя бы потому что в одном случае может быть использован индекс, а в другом нет. Я это понимаю и не говорю про эквивалентность, имелась ввиду принципиальная разница полученного результата. Она появляется когда начинает иметь значение на каком этапе мы учитываем ненулевые значения, отсеиваем ли мы их вовсе, или просто учитываем при выводе - вот о чем я.