SELECT COUNT (*), sum(`pp`= 8)FROM`countries`WHERE country IN(1,2,3,4,5,6)
Однако надо тестировать в бою, два разных запроса могут оказаться эффективнее при наличии индекса по country & pp, т.к. sum будет просматривать все ряды, оставшиеся после where
----- PostgreSQL DBA
SAD
Отправлено: 29 Июня, 2013 - 10:42:01
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
в firebird я бы написал так. sum(case when pp == 8 then 1 else 0). это равнозначно тому, что Вы написали?
Мелкий
Отправлено: 29 Июня, 2013 - 10:47:04
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Да, оно самое. Мой вариант компактнее только из-за неявного приведения типов.
----- PostgreSQL DBA
SAD
Отправлено: 29 Июня, 2013 - 10:48:54
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
а вот эта часть?
Цитата:
хотелось бы использовать данные из первого запроса для последующего поиска в них.
Мелкий
Отправлено: 29 Июня, 2013 - 11:02:29
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Тогда поясните, что имеете в виду.
----- PostgreSQL DBA
SAD
Отправлено: 29 Июня, 2013 - 11:09:15
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
Отобрать все записи + подсчитать их кол-во по условиям
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.