|
MySQL.RU - Webboard
Вернуться
Посчитать сколько одинаковых значений поля... (Саша) 07/06/2016 - 21:31:16
Re: Посчитать сколько одинаковых значений поля... (Akina) 08/06/2016 - 09:56:13
Re: Посчитать сколько одинаковых значений поля... (Саша) 08/06/2016 - 17:43:08
Re: Посчитать сколько одинаковых значений поля... (Akina) 08/06/2016 - 18:12:55
Re: Посчитать сколько одинаковых значений поля... (Саша) 08/06/2016 - 23:24:16
Re: Посчитать сколько одинаковых значений поля... (Саша) 09/06/2016 - 00:06:00
Re: Посчитать сколько одинаковых значений поля... (Akina) 09/06/2016 - 11:06:10
Re: Посчитать сколько одинаковых значений поля... (Саша) 12/06/2016 - 01:38:03
> Original message text:
> From: Саша - 07/06/2016 - 21:31:16
> Subject:Посчитать сколько одинаковых значений поля...
> -----------------
> Привет всем. Ломаю голову как мне заставить MySQL отработать что бы не городить огород в php.
>
> [code=SQL]
> SELECT
> t1.id,
> t1.user_id,
> nickname,
> imageurl,
> t1.title,
> competition_id,
> /*
> (
> SELECT COUNT(id)
> FROM cms_competition_work t6
> WHERE vote=(
> SELECT MAX(vote)
> FROM cms_competition_work t7
> WHERE t6.competition_id=t7.competition_id
> )
> ) winner
> */
> FROM cms_competition_work t1
> JOIN cms_users t3 ON t3.id = t1.user_id
> JOIN cms_user_profiles t4 ON t4.user_id = t1.user_id
> JOIN cms_competition t5 ON t5.id = t1.competition_id
> WHERE vote=(
> SELECT MAX(vote)
> FROM cms_competition_work t2
> WHERE t1.competition_id=t2.competition_id
> )
> LIMIT 6
> [/code]
>
> Есть задача, вывести на морду сайта 6 победителей конкурсов. Все с одной стороны просто есть приз в каждом конкурсе есть победитель. Победитель получил приз. Все что кроме закомментированого, работает как надо. Но вот оказалось что в конкурсе может победить 2 или даже 3 человека, и надо поделить баллы на это количество человек. Кусок кода в коменте мне выдает общее количество призеров.. А как бы мне получить количество победителей в каждом competition_id?
> Помогите пожалуста. Есть вариант в цикле попробовать разобрать совпадение ключей массива, но что-то я там пробовал вообще ни каких мыслей как это сделать... array_count_values мне не помог. Или я просто не умею им пользоваться.
>
From: Akina - 08/06/2016 - 18:12:55
Subject:Посчитать сколько одинаковых значений поля...
-----------------
> В нем есть поле суммы баллов которую получит победитель.. Но вот если победителей два... мне надо просто сумму поделить на 2.. все же просто.
Ааа... а я так понял, что имеются в виду баллы, по которым определяется победитель.
Тогда подход однозначный. В подзапросе считается количество победителей по конкурсам. И во внешнем запросе считается количество баллов, которое отдаётся победителю.
Ну типа
SELECT Competitions.*, Competitions.Points/WinnersCount.Cnt PointsPerWinner
FROM Competitions,
(SELECT Winners.CompetitionID, COUNT(Winners.ID) Cnt
FROM Winners
GROUP BY Winners.CompetitionID) WinnersCount
WHERE Competitions.ID = WinnersCount.CompetitionID
А дальше добавляй сюда таблицу участников, группируй, суммируй, сортируй и лимить.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
43573
|
|