Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Order by c условием 
:(
    Опции темы
gcc
Дата 9.10.2011, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 3
Всего: 17



подскажите, как выполнить некое условие сортировки:

Цитата

по количеству довнлоадов файлов юзера. (допустим у юзера «А» 5 файлов, скачано 10 раз, а у второго юзера «Б»  5 фалов скачано 13 раз. То у кот. 13 он «Б» наверху статистки и тд итп)


как это сделать?  я думаю, как-то использовать sub-select ? 

PM WWW ICQ Skype GTalk Jabber   Вверх
patap
Дата 9.10.2011, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: нет
Всего: 40



привильно ли я понял вопрос, но в общем вот

Код

SELECT SUM(downloads) AS amount, user_id
FROM users
GROUP BY user_id
ORDER BY amount DESC


поле downloads показывает сколько раз был скачан файл
дамп
Код

-- phpMyAdmin SQL Dump
-- version 3.3.2deb1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Окт 09 2011 г., 15:30
-- Версия сервера: 5.1.41
-- Версия PHP: 5.3.2-1ubuntu4.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- База данных: `test`
--

-- --------------------------------------------------------

--
-- Структура таблицы `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `file_id` int(11) NOT NULL,
  `downloads` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

--
-- Дамп данных таблицы `users`
--

INSERT INTO `users` (`id`, `user_id`, `file_id`, `downloads`) VALUES
(1, 1, 1, 2),
(2, 1, 2, 1),
(3, 1, 3, 4),
(4, 1, 4, 1),
(5, 2, 1, 1),
(6, 2, 2, 3),
(7, 2, 3, 2),
(8, 2, 4, 1),
(9, 1, 5, 2),
(10, 2, 5, 2);



--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
gcc
Дата 9.10.2011, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 3
Всего: 17



patap, а где количество файлов у пользователя?

Цитата

допустим у юзера «А» 5 файлов



GROUP BY user_id не надо, 
есть таблица users, с ключем user_id, с количеством скачанных и с количеством файлов

т.е. вопрос как отсортировать два раза, т.е. отсортировать с двумя условиями? как я понимаю с условия...

Это сообщение отредактировал(а) gcc - 9.10.2011, 16:13
PM WWW ICQ Skype GTalk Jabber   Вверх
Akina
Дата 9.10.2011, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



gcc, а если разное количество файлов, кто выше? А соотношение скачек к файлам учитывать? а если для отдельного файла популярность охренительная, но она тонет в море шелухи?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
gcc
Дата 9.10.2011, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 3
Всего: 17



как я понимаю с начало по количество файлов, а потом по количеству скачанных файлов...

как я понимаю, создать временную таблицу надо или "под-селекс"?
Код

select * from select...

PM WWW ICQ Skype GTalk Jabber   Вверх
Akina
Дата 9.10.2011, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(gcc @  9.10.2011,  17:26 Найти цитируемый пост)
 с начало по количество файлов, а потом по количеству скачанных файлов...

Код

ORDER BY files_amount, downloads_amount



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
tishaishii
Дата 12.10.2011, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



Код
select
   sum(`downloads`) AS `amount`,
   `user_id`
from
   (select * from `users`) as `T`
group by
   `user_id`
order by
   `amount` desc
?

Это сообщение отредактировал(а) tishaishii - 12.10.2011, 22:42
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0926 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.