Как выбрать отдельную запись и подсчитать общее количество с помощью предложения where

#mysql #sql #select #group-by #distinct

#mysql #sql #выберите #группировка по #distinct

Вопрос:

Пожалуйста, помогите мне, как выбрать и подсчитать общее отдельное значение из таблицы, используя предложение where.

мой код здесь ……….

 <? 

 $loc=mysql_query($che);
   while($loc288=mysql_fetch_array($loc)){

    $loc6=mysql_query("select distinct `location_name`, count(`location_name`) as CountOf from tb_job_location group by location_name");
    $loc5=mysql_fetch_array($loc6);

?>
This Query fetch result as

Delhi 1
Delhi 1
  

Но это должен быть результат, подобный

Дели 2

Спасибо за помощь

Комментарии:

1. select location_name,count(*) as CountOf from tb_job_location group by location_name

2. Всегда показывать Delhi 1 , потому что вы привыкли distinct

Ответ №1:

вы используете distinct и group by одновременно.

Попробуйте это

    $loc6=mysql_query("select `location_name`, count(*) as CountOf 
                      from tb_job_location group by location_name ");
  

Ответ №2:

GROUP BY caluse сгруппирует location_name , что вернет количество location_name в том случае, если вы не используете обязательное DISTINCT предложение.

 SELECT `location_name`,
       count(`location_name`) AS CountOf
FROM tb_job_location
GROUP BY location_name
  

Комментарии:

1. Ответы только для кода, которые вполне могут быть работоспособным решением, обычно улучшаются некоторым объяснением. Пожалуйста, подумайте о том, чтобы прокомментировать или объяснить, как работает предложенный вами код.

Ответ №3:

GROUP BY вернет ОТДЕЛЬНЫЕ записи, поэтому нет необходимости писать ключевое слово DISTINCT.

Попробуйте это:

 SELECT `location_name`, COUNT(`location_name`) AS CountOfLocations 
FROM tb_job_location 
GROUP BY location_name;