Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Kojuh
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 17
1

Вывод записей из БД и группировка по количеству

04.12.2019, 22:44. Просмотров 92. Ответов 2
Метки нет (Все метки)

Доброго времени суток!
Никогда не работал с оператором COUNT но сейчас пришлось. И я честно говоря не знаю с какой стороны зайти даже. Итак что мы имеем?
БД пользователей. У каждого пользователя в БД есть колонка referer где указан id пригласившего пользователя.
Требуется сосчитать количество рефералов у каждого реферера и вывести ТОП-20. Если в колонке значение 0, то его не считаем.
т.е. взять колонку referer и сосчитать все записи, у которых id=5. Пусть айди 5 это будет Машка и у неё количество записей будет 12
потом скажем БД увидела что записей с id=8 7штук, айди 8 пусть будет Глашка
далее записей с id=25 будет 3 штуки, а айди 25 это чебурашка.
и т.д. по аналогии
Получить надо таблицу такого вида:
Машка 12 чел.
Глашка 7 чел.
Чебурашка 3 чел.
Помогите плз
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2019, 22:44
Ответы с готовыми решениями:

Вывод записей по количеству комментариев
Как вывести вывести список страниц по количеству комментариев (по убыванию) на главной странице...

2

madamx
1 / 0 / 1
Регистрация: 13.01.2015
Сообщений: 49
04.12.2019, 23:34 2
SELECT user, COUNT(referer) AS total FROM table_user WHERE referer != 0 GROUP BY referer ORDER BY total DESC LIMIT 20

что то вроде этого

Добавлено через 8 минут
user Машка total 12
0
Kojuh
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 17
04.12.2019, 23:46  [ТС] 3
Короче вот что вышло, благо было где подсмотреть...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
 
 
$list = $mysqli->query("select u2.id, u.referer as id, count(u.id) cnt from prefix_users u
                                                    join prefix_users u2 on u2.id = u.referer
                                                    group by u.referer
                                                    order by cnt
                                                    desc limit 20");
 
 
 
foreach ($list as $row):
$query22 = $mysqli->query("SELECT `login` FROM `".PREFIX."_users` WHERE `id` = '".$row['id']."'" );
$loginuser = $query22->fetch_assoc()
 
?>
 
<?echo $row['cnt'] ; 
   echo $row['id'];
   echo $loginuser['login'];
 
 
 
endforeach;
?>
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2019, 23:46

Группировка городов по количеству жителей
Вам дан список столиц стран с указанным населением. Сгруппируйте города, попадающие в интервалы по...

Визуальная группировка записей
Доброго времени суток, уважаемые форумчане. Ни так давно прочитал книгу по базам данных, в которой...

Группировка записей попарно
Здравствуйте! Есть таблица с 3 полями и несклькими сотнями тысяч записей: Code ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.