English 中文(简体)
MySQL 选择 WHERE AVG()
原标题:MySQL Select Last 10 Rows Using WHERE AVG()

我试图把最后10个评级高于4个的行文清单拉开。 现在是通过从第一个表格中选取,然后核对其高于4的平均数,然后在变数中加起来,如果不是这样的话。 特别是在有1 000多个牢房的情况下,这是这样做的可怕方式。

这里有两个问题:

SELECT * FROM `CLMS_reviews` WHERE id = 465 ORDER BY date DESC

SELECT 
rc.name, rr.rating
FROM `CLMS_reviews_ratings` rr  
LEFT JOIN `CLMS_reviews_categories` rc ON rc.cat_id = rr.cat_id  AND rc.website_id = 465
WHERE rr.review_id = " . $row[ id ] . "
GROUP BY rc.name

我怎么能把这个问题合并为一个问题? 我试图这样做,但因以下原因使小组无法使用:

SELECT 
rr.review_id
FROM `CLMS_reviews` r
LEFT JOIN `CLMS_reviews_ratings` rr ON rr.review_id = r.id
WHERE r.website_id = 465 AND AVG(rr.rating) > 4
GROUP BY rr.review_id LIMIT 10

偏见 摘自:

SELECT review_id FROM `CLMS_reviews_ratings`
WHERE review_id IN ((SELECT id FROM `CLMS_reviews` WHERE website_id = 465))
GROUP BY review_id
HAVING avg(rating) > 4
LIMIT 10
最佳回答

不能对此进行测试,但可能这样做:

SELECT rr.review_id
  FROM `CLMS_reviews` r
  LEFT JOIN `CLMS_reviews_ratings` rr ON rr.review_id = r.id
 WHERE r.website_id = 465
 GROUP BY rr.review_id
HAVING avg(rr.rating) > 4
 LIMIT 10;

如果您需要按总体职能进行过滤,HAVING是您的附录。

问题回答

我认为,你需要使用<代码>HAVING syntax。 与此类似:

SELECT 
rr.review_id
FROM `CLMS_reviews` r
LEFT JOIN `CLMS_reviews_ratings` rr ON rr.review_id = r.id
WHERE r.website_id = 465
GROUP BY rr.review_id 
HAVING AVG(rr.rating) > 4
LIMIT 10




相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...

热门标签