Автор: rezonatorec 2.05.2006 - 22:04
Вот у меня есть таблица mysql, например:
____ ______ __________ _____
| id | name | lastname | file |
---- ------ ---------------------
| 1 | Петя | Иванов | win.rar
| 2 | Вася | Петров | dos.rar
| 3 | Коля | Иванов | gas.rar
| 4 | Коля | Иванов | fin.rar
| 5 | Вася | Петров | ap.rar
---- ------ ----------
Как, например, вывести 3 лучших пользователей, которые самое больше закачали файлов?
Автор: PRYANIK 2.05.2006 - 23:07
SQL
"SELECT нужные_поля FROM название_таблица WHERE `поле_кол-во_закачек` > 0 ORDER BY `поле_кол-во_закачек` DESC LIMIT 0, 3"
Автор: rezonatorec 6.05.2006 - 23:04
QUOTE(PRYANIK @ 3.05.2006 - 0:07)
SQL
"SELECT нужные_поля FROM название_таблица WHERE `поле_кол-во_закачек` > 0 ORDER BY `поле_кол-во_закачек` DESC LIMIT 0, 3"
Да это работает! но у меня не много другое - каждый раз когда пользователь добавляет файл создается новый ряд с именем, фамилией и названием файла ... поэтому надо как то сначала подсчитать колличество строк(рядов) у каждого пользователя и потом вывести 3 лучших!
Автор: rezonatorec 15.05.2006 - 9:20
Проблема решена вот так 
CODE
SELECT `name`, `lastname`, COUNT(`file`) AS cnt
FROM `article`
GROUP BY `name`, `lastname`
ORDER BY `cnt` DESC
LIMIT 3