Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: sql: посчитать количество одинаковых записей в таблице

Всем здрасьте.

Есть таблица downloads.
В ней есть поле Filename.
Нужно: Вывести все имена файлов из этого поля, причем, чтобы дубликаты удалялись и рядом написать какое количество дубликатов найдено. То есть, сколько раз скачивали каждый файл (Filename).

Если вывести имена файлов и убрать дубликаты - знаю как, это не проблема, то подсчитать количество этих дубликатов + первый найденный файл - проблема.

Например:
first_file.mp3
first_file.mp3
first_file.mp3
second_file.mp3
second_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3

Вывод:
first_file.mp3 - 3
second_file - 2
third_file - 4

Оформление не нужно, просто подскажите плиз как посчитать количество одинаковых имен в поле таблицы :)
Ответ:
Сообщение от BOOMer_us
в результатах оставить лишь строчки, у которых cnt>1 (2 и более)?
WHERE `cnt`>1
Вопрос: sql: посчитать количество одинаковых записей в таблице

Всем здрасьте.

Есть таблица downloads.
В ней есть поле Filename.
Нужно: Вывести все имена файлов из этого поля, причем, чтобы дубликаты удалялись и рядом написать какое количество дубликатов найдено. То есть, сколько раз скачивали каждый файл (Filename).

Если вывести имена файлов и убрать дубликаты - знаю как, это не проблема, то подсчитать количество этих дубликатов + первый найденный файл - проблема.

Например:
first_file.mp3
first_file.mp3
first_file.mp3
second_file.mp3
second_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3

Вывод:
first_file.mp3 - 3
second_file - 2
third_file - 4

Оформление не нужно, просто подскажите плиз как посчитать количество одинаковых имен в поле таблицы :)
Ответ:
Сообщение от BOOMer_us
в результатах оставить лишь строчки, у которых cnt>1 (2 и более)?
WHERE `cnt`>1
Вопрос: sql: посчитать количество одинаковых записей в таблице

Всем здрасьте.

Есть таблица downloads.
В ней есть поле Filename.
Нужно: Вывести все имена файлов из этого поля, причем, чтобы дубликаты удалялись и рядом написать какое количество дубликатов найдено. То есть, сколько раз скачивали каждый файл (Filename).

Если вывести имена файлов и убрать дубликаты - знаю как, это не проблема, то подсчитать количество этих дубликатов + первый найденный файл - проблема.

Например:
first_file.mp3
first_file.mp3
first_file.mp3
second_file.mp3
second_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3

Вывод:
first_file.mp3 - 3
second_file - 2
third_file - 4

Оформление не нужно, просто подскажите плиз как посчитать количество одинаковых имен в поле таблицы :)
Ответ:
Сообщение от BOOMer_us
в результатах оставить лишь строчки, у которых cnt>1 (2 и более)?
WHERE `cnt`>1
Вопрос: sql: посчитать количество одинаковых записей в таблице

Всем здрасьте.

Есть таблица downloads.
В ней есть поле Filename.
Нужно: Вывести все имена файлов из этого поля, причем, чтобы дубликаты удалялись и рядом написать какое количество дубликатов найдено. То есть, сколько раз скачивали каждый файл (Filename).

Если вывести имена файлов и убрать дубликаты - знаю как, это не проблема, то подсчитать количество этих дубликатов + первый найденный файл - проблема.

Например:
first_file.mp3
first_file.mp3
first_file.mp3
second_file.mp3
second_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3

Вывод:
first_file.mp3 - 3
second_file - 2
third_file - 4

Оформление не нужно, просто подскажите плиз как посчитать количество одинаковых имен в поле таблицы :)
Ответ:
Сообщение от BOOMer_us
в результатах оставить лишь строчки, у которых cnt>1 (2 и более)?
WHERE `cnt`>1
Вопрос: sql: посчитать количество одинаковых записей в таблице

Всем здрасьте.

Есть таблица downloads.
В ней есть поле Filename.
Нужно: Вывести все имена файлов из этого поля, причем, чтобы дубликаты удалялись и рядом написать какое количество дубликатов найдено. То есть, сколько раз скачивали каждый файл (Filename).

Если вывести имена файлов и убрать дубликаты - знаю как, это не проблема, то подсчитать количество этих дубликатов + первый найденный файл - проблема.

Например:
first_file.mp3
first_file.mp3
first_file.mp3
second_file.mp3
second_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3

Вывод:
first_file.mp3 - 3
second_file - 2
third_file - 4

Оформление не нужно, просто подскажите плиз как посчитать количество одинаковых имен в поле таблицы :)
Ответ:
Сообщение от BOOMer_us
в результатах оставить лишь строчки, у которых cnt>1 (2 и более)?
WHERE `cnt`>1
Вопрос: sql: посчитать количество одинаковых записей в таблице

Всем здрасьте.

Есть таблица downloads.
В ней есть поле Filename.
Нужно: Вывести все имена файлов из этого поля, причем, чтобы дубликаты удалялись и рядом написать какое количество дубликатов найдено. То есть, сколько раз скачивали каждый файл (Filename).

Если вывести имена файлов и убрать дубликаты - знаю как, это не проблема, то подсчитать количество этих дубликатов + первый найденный файл - проблема.

Например:
first_file.mp3
first_file.mp3
first_file.mp3
second_file.mp3
second_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3
third_file.mp3

Вывод:
first_file.mp3 - 3
second_file - 2
third_file - 4

Оформление не нужно, просто подскажите плиз как посчитать количество одинаковых имен в поле таблицы :)
Ответ:
Сообщение от BOOMer_us
в результатах оставить лишь строчки, у которых cnt>1 (2 и более)?
WHERE `cnt`>1
Вопрос: Посчитать количество одинаковых записей в таблице | SQL

Всем привет! Я новичок, в web-програмирование.
Написал не очень хорошый пример реализации выборки количества партнеров у каждого юзера из таблицы users, по скольку делаю один запрос и потом еще запрос в цикле, это на мой взгляд не правильно. Нужно сделать только один запрос, что бы не делать в цикле. Если кому не сложно, помогите решить эту проблему. Вот пример кода, он работает, но не очень хорошый пример
$sql = "SELECT `partner_id`, COUNT(`partner_id`) AS count_id FROM `users` GROUP BY `partner_id` ORDER BY `count_id` DESC LIMIT 5";
$query = mysqli_query($db, $sql) or die(mysqli_error());

while ($partners = mysqli_fetch_assoc($query)) {

$partner_id = $partners['partner_id'];

$sql_name_surname = "SELECT `name`, `surname` FROM `users` WHERE `id`='{$partner_id}'";
$query_name_surname = mysqli_query($db, $sql_name_surname) or die(mysqli_error());
$partners_name_surname = mysqli_fetch_assoc($query_name_surname);

echo '<p>' . $partners_name_surname['name'] . ' ' . $partners_name_surname['surname'] . ' - <b>' . $partners['count_id'] . '</b></p>';

}
Ответ:
Спасибо за подсказку! В даном примере мне нужно только 5 строчек вывести, потому это не большая проблема вывести имена юзеров сгрупированных partner_id в цикле, как вы заметили. Но кроме этого еще нужно будет потом вывести сгрупиронные partner_id и их количество и имена partner_id без лимитов, тоисть если будет не 5 запросов , а допустем 1 000 000 , это уже больша проблема. Потому я хотел сделать групиронные partner_id и их количество и имена partner_id в одном запросе и вывести их цыклом.
Проблема в том что нельзя выбрать одним запросом сгрупиронные partner_id и их количество и имена partner_id, если такое сделать то выбирается первое имя групированного partner_id , а они там разные, потому не знаю, может нужно встроенные какието выборки делать еще.
Вот пример таблицы . Нужно сделать одним запросом в БД вот такой вывод
Вопрос: Посчитать количество одинаковых записей в таблице | SQL

Всем привет! Я новичок, в web-програмирование.
Написал не очень хорошый пример реализации выборки количества партнеров у каждого юзера из таблицы users, по скольку делаю один запрос и потом еще запрос в цикле, это на мой взгляд не правильно. Нужно сделать только один запрос, что бы не делать в цикле. Если кому не сложно, помогите решить эту проблему. Вот пример кода, он работает, но не очень хорошый пример
$sql = "SELECT `partner_id`, COUNT(`partner_id`) AS count_id FROM `users` GROUP BY `partner_id` ORDER BY `count_id` DESC LIMIT 5";
$query = mysqli_query($db, $sql) or die(mysqli_error());

while ($partners = mysqli_fetch_assoc($query)) {

$partner_id = $partners['partner_id'];

$sql_name_surname = "SELECT `name`, `surname` FROM `users` WHERE `id`='{$partner_id}'";
$query_name_surname = mysqli_query($db, $sql_name_surname) or die(mysqli_error());
$partners_name_surname = mysqli_fetch_assoc($query_name_surname);

echo '<p>' . $partners_name_surname['name'] . ' ' . $partners_name_surname['surname'] . ' - <b>' . $partners['count_id'] . '</b></p>';

}
Ответ:
Спасибо за подсказку! В даном примере мне нужно только 5 строчек вывести, потому это не большая проблема вывести имена юзеров сгрупированных partner_id в цикле, как вы заметили. Но кроме этого еще нужно будет потом вывести сгрупиронные partner_id и их количество и имена partner_id без лимитов, тоисть если будет не 5 запросов , а допустем 1 000 000 , это уже больша проблема. Потому я хотел сделать групиронные partner_id и их количество и имена partner_id в одном запросе и вывести их цыклом.
Проблема в том что нельзя выбрать одним запросом сгрупиронные partner_id и их количество и имена partner_id, если такое сделать то выбирается первое имя групированного partner_id , а они там разные, потому не знаю, может нужно встроенные какието выборки делать еще.
Вот пример таблицы . Нужно сделать одним запросом в БД вот такой вывод
Вопрос: Посчитать количество одинаковых записей в таблице | SQL

Всем привет! Я новичок, в web-програмирование.
Написал не очень хорошый пример реализации выборки количества партнеров у каждого юзера из таблицы users, по скольку делаю один запрос и потом еще запрос в цикле, это на мой взгляд не правильно. Нужно сделать только один запрос, что бы не делать в цикле. Если кому не сложно, помогите решить эту проблему. Вот пример кода, он работает, но не очень хорошый пример
$sql = "SELECT `partner_id`, COUNT(`partner_id`) AS count_id FROM `users` GROUP BY `partner_id` ORDER BY `count_id` DESC LIMIT 5";
$query = mysqli_query($db, $sql) or die(mysqli_error());

while ($partners = mysqli_fetch_assoc($query)) {

$partner_id = $partners['partner_id'];

$sql_name_surname = "SELECT `name`, `surname` FROM `users` WHERE `id`='{$partner_id}'";
$query_name_surname = mysqli_query($db, $sql_name_surname) or die(mysqli_error());
$partners_name_surname = mysqli_fetch_assoc($query_name_surname);

echo '<p>' . $partners_name_surname['name'] . ' ' . $partners_name_surname['surname'] . ' - <b>' . $partners['count_id'] . '</b></p>';

}
Ответ:
Спасибо за подсказку! В даном примере мне нужно только 5 строчек вывести, потому это не большая проблема вывести имена юзеров сгрупированных partner_id в цикле, как вы заметили. Но кроме этого еще нужно будет потом вывести сгрупиронные partner_id и их количество и имена partner_id без лимитов, тоисть если будет не 5 запросов , а допустем 1 000 000 , это уже больша проблема. Потому я хотел сделать групиронные partner_id и их количество и имена partner_id в одном запросе и вывести их цыклом.
Проблема в том что нельзя выбрать одним запросом сгрупиронные partner_id и их количество и имена partner_id, если такое сделать то выбирается первое имя групированного partner_id , а они там разные, потому не знаю, может нужно встроенные какието выборки делать еще.
Вот пример таблицы . Нужно сделать одним запросом в БД вот такой вывод
Вопрос: Посчитать количество одинаковых записей в таблице | SQL

Всем привет! Я новичок, в web-програмирование.
Написал не очень хорошый пример реализации выборки количества партнеров у каждого юзера из таблицы users, по скольку делаю один запрос и потом еще запрос в цикле, это на мой взгляд не правильно. Нужно сделать только один запрос, что бы не делать в цикле. Если кому не сложно, помогите решить эту проблему. Вот пример кода, он работает, но не очень хорошый пример
$sql = "SELECT `partner_id`, COUNT(`partner_id`) AS count_id FROM `users` GROUP BY `partner_id` ORDER BY `count_id` DESC LIMIT 5";
$query = mysqli_query($db, $sql) or die(mysqli_error());

while ($partners = mysqli_fetch_assoc($query)) {

$partner_id = $partners['partner_id'];

$sql_name_surname = "SELECT `name`, `surname` FROM `users` WHERE `id`='{$partner_id}'";
$query_name_surname = mysqli_query($db, $sql_name_surname) or die(mysqli_error());
$partners_name_surname = mysqli_fetch_assoc($query_name_surname);

echo '<p>' . $partners_name_surname['name'] . ' ' . $partners_name_surname['surname'] . ' - <b>' . $partners['count_id'] . '</b></p>';

}
Ответ:
Спасибо за подсказку! В даном примере мне нужно только 5 строчек вывести, потому это не большая проблема вывести имена юзеров сгрупированных partner_id в цикле, как вы заметили. Но кроме этого еще нужно будет потом вывести сгрупиронные partner_id и их количество и имена partner_id без лимитов, тоисть если будет не 5 запросов , а допустем 1 000 000 , это уже больша проблема. Потому я хотел сделать групиронные partner_id и их количество и имена partner_id в одном запросе и вывести их цыклом.
Проблема в том что нельзя выбрать одним запросом сгрупиронные partner_id и их количество и имена partner_id, если такое сделать то выбирается первое имя групированного partner_id , а они там разные, потому не знаю, может нужно встроенные какието выборки делать еще.
Вот пример таблицы . Нужно сделать одним запросом в БД вот такой вывод