- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вот какую задачу пытаюсь решить. Есть база данных. В ней есть таблица с названием bd_data. В ней имеются много записей содержащих: имя пользователя (user) и значение (value). По одному пользователю может быть несколько записей с одинаковым именем пользователем (user) но с разными значениями (value). Примерно в табличном виде это будет выгялдеть так:
ну и так далее
Задача: нужно сгруппировать запросом записи, отсортировать по значению value пользователей по убыванию и вывести их на экран, т.е. нужно вывести (в таком же порядке):
test3 4.5
test1 2.5
tets5 2
Состряпал запрос, но он не дает желаемого результата, помогите кто может. Вот запрос:
просуммировать что ли?
в google "mysql JOIN" поищите.
просуммировать что ли?
Проссумировать и вывести результаты в порядке убывания по суммированной колонке
Читать документацию не пробовали?
SELECT user, sum(value) FROM bd_data WHERE id='$id_kon' GROUP BY user ORDER BY value DESC
Читать документацию не пробовали?
SELECT user, sum(value) FROM bd_data WHERE id='$id_kon' GROUP BY user ORDER BY value DESC
Я этот код и сам знаю. А Вы задание прочитали внимательно. Скажите как такой запрос отсортирует записи по убыванию ВСЕХ значений value у КАЖДОГО пользователя.
Повторю:
начальные данные:
user value
test1 1
test1 1.5
test5 2
test3 0.5
test3 1
test3 3
....
В результате должно быть:
test3 4.5
test1 2.5
tets5 2
Заметьте, что просуммировано и отсортировано по СУММЕ ВСЕХ ЗНАЧЕНИЙ каждого пользовтеля
может как-нибудь
SELECT user, sum(value) as value2 FROM bd_data WHERE id='$id_kon' GROUP BY user ORDER BY value2 DESC
подзапрос надо
select * from (SELECT user, sum(value) as value2 FROM bd_data WHERE id='$id_kon' GROUP BY user) t order by t.value2, t.user DESC
не надо тут подзапросов
SELECT user, sum(value) as value2 FROM bd_data WHERE id='$id_kon' GROUP BY user ORDER BY value2 DESC
Данный код работает должным образом, НО без части:
select * from (SELECT user, sum(value) as value2 FROM bd_data WHERE id='$id_kon' GROUP BY user) t order by t.value2, t.user DESC
Данный запрос тоже работает должным образом, НО опять же без части
и единственное что DESC нужно применять для сортировки не по пользователю, а по сумме value2Последний запрос:
mysql> select id, sum(i) as v from users group by id order by v desc;
Тоже работает, НО тут нет части
Стоит добавить эту часть как выводит только одного пользователя и без суммирования значения value, т.е. самую первую запись.
Хотя это моя ошибка я не дописал в задаче данный параметр. Усложняем задачу. В таблице имеется еще одна колонка id в которой у разных пользователей имеются значения разные, т.е. исходная таблица уже принимает вид:
user value id
test1 1 15
test1 1.5 15
test5 2 16
test3 0.5 15
test3 1 15
Значение
test3 $id_kon=15, тогда результат запроса должен быть такой:
test3 4.5
test1 2.5
В данном случае пользователь tets5 выпадает из результата, так как у него значение id стоит 16. Так вот. Стоит только все запросы которые приведены выше дополнить отбором по данному полю, как выдает только первую запись и не суммирует значения
andryus добавил 21.10.2010 в 20:59
Все заработало. Просто имел значение регистр символов в самом запросе. Сейчас все заработало. Всем спасибо