Использование ключевого слова DISTINCT со счетчиком в SQL-запросе - PullRequest
0 голосов
/ 25 августа 2018

У меня есть страница, на которой отображается список всех названий компаний (точнее 45 из них).

Таблица базы данных имеет 43 815 результатов в настоящее время, поэтому я хочу отображать их только без дубликатов (поэтому я использую DISTINCT при выборе), но я также хотел бы подсчитать, сколько результатов в каждой компании имеет и повторить их вне.

Я пытался использовать count() as, но он удаляет все результаты компании и просто помещает общее количество (43 815).

У меня вопрос, как бы я отображал компании, использующие DISTINCT (потому что я не хочу, чтобы на странице были дубликаты), а затем выводил бы общие результаты каждой компании?

Любая помощь приветствуется!

$servername = "localhost";
$username = "";
$password = "";
$dbname = "";

// Connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT DISTINCT company FROM ads ORDER BY company ASC";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {

       // Display the company name
       echo $row["company"];

       // I WOULD LIKE TO ECHO OUT HERE THE TOTAL OF EACH COMPANY HAS (COUNT) IN RESULTS!

    }
} else {
    echo "0 results";
  }
$conn->close();
?>

Ответы [ 3 ]

0 голосов
/ 25 августа 2018

Я думаю, что вам, вероятно, следует попытаться использовать предложение GROUP BY.

Не зная разметки таблицы, попробуйте поиграть с этим:

$query = "SELECT 

  count(company) as count 

FROM ads 

GROUP BY company 

ORDER BY company ASC"
0 голосов
/ 25 августа 2018

Используйте GROUP BY для запроса SELECT, это должно сделать то, что вы ищете, это сгруппирует все компании одной компании и посчитает их.

"ВЫБЕРИТЕ СЧЕТ (фирма) ИЗ РЕКЛАМЫ ГРУППЫ ПО КОМПАНИИ ЗАКАЗ ПО КОМПАНИИ ASC"

0 голосов
/ 25 августа 2018

Попробуйте:

SELECT
    company,
    COUNT(company)
FROM
    ads
GROUP BY
    company
ORDER BY
    company
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...