Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сделать такой подсчет
 
 автор: OLi   (18.11.2011 в 22:44)   письмо автору
 
 

вы не подскажете как сделать выборку правильно: Есть допустим несколько записей в таблице с одинаковым fil - нужно выбрать только одно значение из всех fil и прибавить +1 к счетчику...т-е нужно посчетать кол-во записей в базе где разные fil а если fil одинаковый - то засчитать все их как +1
$count=0;
id fil
1 2
2 2
3 2
4 2
_____
$count++;

  Ответить  
 
 автор: cheops   (18.11.2011 в 23:05)   письмо автору
 
   для: OLi   (18.11.2011 в 22:44)
 

В результате подсчета по приведенной выше таблице, какое значение $count должно получится?

  Ответить  
 
 автор: OLi   (18.11.2011 в 23:28)   письмо автору
 
   для: cheops   (18.11.2011 в 23:05)
 

$count должно быть равное 1

  Ответить  
 
 автор: cheops   (19.11.2011 в 03:30)   письмо автору
 
   для: OLi   (18.11.2011 в 23:28)
 

Правильно ли я понимаю, что запрос должен вернуть результирующую таблицу, в которой количество записей будет совпадать с количеством уникальных значений поля fil и оно будет равным 1 или 0, в зависимости от того, больше 1 или равно 1 количество записей с соответствующим значением fil?

  Ответить  
 
 автор: OLi   (19.11.2011 в 13:39)   письмо автору
 
   для: cheops   (19.11.2011 в 03:30)
 

Совершенно верно.

  Ответить  
 
 автор: cheops   (19.11.2011 в 16:32)   письмо автору
 
   для: OLi   (19.11.2011 в 13:39)
 

Можно начать отталкиваться от следующего запроса
SELECT fil, IF(COUNT(*) > 1, 1, 0) AS total
FROM tbl
GROUP BY fil

  Ответить  
 
 автор: OLi   (19.11.2011 в 16:51)   письмо автору
 
   для: cheops   (19.11.2011 в 16:32)
 

Можете пояснить? Мне надо подсчитать кол-во записей с уникальным fil
и не повторяющимся.

  Ответить  
 
 автор: OLi   (19.11.2011 в 17:11)   письмо автору
 
   для: OLi   (19.11.2011 в 16:51)
 

Может так:
"Select count(DISTINCT fil) from `filials` ".$where." "

  Ответить  
 
 автор: cheops   (19.11.2011 в 17:13)   письмо автору
 
   для: OLi   (19.11.2011 в 16:51)
 

Давайте еще раз проясним, есть поле fil, в нем цифры повторяющиеся и нет, вам что нужно:
1. Количество чисел без повторов (если у числа есть дубль, он в статистике не участвует/участвует)?
2. Общее количество записей за минусом дублей?

  Ответить  
 
 автор: OLi   (19.11.2011 в 17:19)   письмо автору
 
   для: cheops   (19.11.2011 в 17:13)
 

Общее количество записей за минусом дублей!

  Ответить  
 
 автор: cheops   (19.11.2011 в 18:19)   письмо автору
 
   для: OLi   (19.11.2011 в 17:19)
 

Тогда, да, как вы указали выше
SELECT COUNT(DISTINCT fil) FROM tbl

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования