#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;