Измените SQL AVG и COUNT, если выполняется условие

Я пытаюсь написать обзор сайта. У меня все сложилось, пока я не понял, что пропустил одну вещь. Количество отзывов, которые указаны как заблокированные на странице Средний.

Вот текущий SQL, который обрабатывает подсчет отзывов и получение среднего значения.

$qa = $db->prepare("SELECT ( AVG(review_service_rating) + AVG(review_price_rating) ) AS average_rating, COUNT(review_service_rating) AS num_service_rating, COUNT(review_price_rating) AS num_price_rating FROM reviews WHERE assigned_id = :review_id ORDER BY review_posted DESC");
$qa->execute(array(':review_id' => $_GET['page_id']));
$ra = $qa->fetch(PDO::FETCH_ASSOC);

Сейчас. Я добавил строку БД под названием review_banned который является simple 0 = no or 1 = yes

Как бы я добавил это к моему существующему запросу SQL, чтобы предотвратить подсчет отзывов, которые перечислены как запрещенные.

введите описание изображения здесь

0

Решение

Заменить рейтинг на 0 когда review_banned = 1,

SELECT AVG(IF(review_banned=1, 0, review_service_rating)) + AVG(IF(review_banned=1, 0, review_price_rating)) AS average_rating, ...
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector