Как использовать функцию MYSQL Round в операторе множественного выбора - PullRequest
0 голосов
/ 05 октября 2018
SELECT bp.bizid, bp.usrid, bp.website,
ROUND((SELECT SUM(rating) FROM ratings WHERE bizid=bp.bizid)/(SELECT COUNT(*) FROM ratings WHERE bizid=bp.bizid), 1) AS 'ratings', 
(SELECT COUNT(*) FROM bzreviews WHERE bizid=bp.bizid) AS 'ttlreviews', bp.phoneno, als.bizname, 
(SELECT COUNT(*) FROM endorsment WHERE bizid=bp.bizid) AS 'endorses', als.imgname, bp.`location`, bp.`ownership`, 
(SELECT COUNT(*) FROM follows WHERE bizid=bp.bizid) AS 'followers', bp.categories, bp.openhours, bp.bizdecri FROM bizprofile AS bp 
INNER JOIN alluser AS als ON bp.usrid=als.userid WHERE als.usertype='Business'

** Я делюсь этим, чтобы помочь кому-то, кому это может понадобиться.Я использую COUNT для подсчета количества

отзывов (COUNT ()) подписчика (COUNT ())

и endorsmentCOUNT () в моемБаза данных MYSQL.Чтобы найти рейтинг, я использую функцию округления, чтобы помочь округлить число до одного десятичного знака после деления общего рейтинга (SUM (рейтинг)) с количеством рейтингов (COUNT ())

1 Ответ

0 голосов
/ 05 октября 2018

Поскольку операторы SELECT недопустимы для использования в функции ROUND.Вам нужно будет использовать подход с поставленной таблицей

SELECT 
 *
 , ROUND(alias.ratings, 1) AS ratings
FROM (

    SELECT
      bp.bizid
    , bp.usrid
    , bp.website,
    , ((SELECT SUM(rating) FROM ratings WHERE bizid=bp.bizid)/(SELECT COUNT(*) FROM ratings WHERE bizid=bp.bizid)) AS 'ratings'
    , (SELECT COUNT(*) FROM bzreviews WHERE bizid=bp.bizid) AS 'ttlreviews'
    , bp.phoneno, als.bizname
    , (SELECT COUNT(*) FROM endorsment WHERE bizid=bp.bizid) AS 'endorses'
    , als.imgname, bp.`location`, bp.`ownership`
    , (SELECT COUNT(*) FROM follows WHERE bizid=bp.bizid) AS 'followers'
    , bp.categories
    , bp.openhours
    , bp.bizdecri
    FROM
      bizprofile AS bp 
    INNER JOIN
      alluser AS als
    ON
     bp.usrid = als.userid
    WHERE
     als.usertype = 'Business'
) AS alias
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...