BeatBox
Guest
Несколько условий в SQL запросе для одного поля
Здравствуйте. у меня возникла проблема, я уже сижу 3ий час незнаю как решить.. искал в интернете но ничего ненашёл. Надеюсь кто-то с таким сталкивался:
есть запрос, который выбирает среднее знач. определенных полей, вида select .... AVG(b.filed) as first ......
мне очень нужно сделать так, чтобы выбиралось среднее значение не всех filed, а только тех, где в той же таблице поле filed2= например 1. и точно также в этом запросе сделать среднее значение опять этих же filed только уже где поле filedХ будет равно "Яблоко". Например. Вот запрос, над которым я ломаю голову последние несколько дней и упорно последние три часа:
тоесть нужно сделать чтобы не просто высчитывалось
AVG(b.vote_mark) as vote_mark
а сначала AVG(b.vote_mark) as vote_mark где поле b.filed = 1
а потом AVG(b.vote_mark) as vote_mark2 где поле b.filed2 = 2
Можно так сделать?
-~{}~ 02.04.05 01:51:
забыл добавить - самое сложное это то что все это нужно сложить в один запрос т.к. это все потом идет в WHILE
Здравствуйте. у меня возникла проблема, я уже сижу 3ий час незнаю как решить.. искал в интернете но ничего ненашёл. Надеюсь кто-то с таким сталкивался:
есть запрос, который выбирает среднее знач. определенных полей, вида select .... AVG(b.filed) as first ......
мне очень нужно сделать так, чтобы выбиралось среднее значение не всех filed, а только тех, где в той же таблице поле filed2= например 1. и точно также в этом запросе сделать среднее значение опять этих же filed только уже где поле filedХ будет равно "Яблоко". Например. Вот запрос, над которым я ломаю голову последние несколько дней и упорно последние три часа:
PHP:
"SELECT a.game_id as game_id, UNIX_TIMESTAMP(a.date) as formatted, a.title as title, COUNT(b.vote_mark) as tttls, AVG(b.vote_mark) as vote_mark FROM ".$prefix."_pages as a LEFT JOIN ".$prefix."_vote as b on (a.game_id=b.vote_id) $resultwhere GROUP BY a.pid ORDER BY $sortby $stype $limit"
AVG(b.vote_mark) as vote_mark
а сначала AVG(b.vote_mark) as vote_mark где поле b.filed = 1
а потом AVG(b.vote_mark) as vote_mark2 где поле b.filed2 = 2
Можно так сделать?
-~{}~ 02.04.05 01:51:
забыл добавить - самое сложное это то что все это нужно сложить в один запрос т.к. это все потом идет в WHILE