Php SQL-在SUM&;方面遇到麻烦;带联接表的平均查询
我有两个表,一个是评级表,另一个是Php SQL-在SUM&;方面遇到麻烦;带联接表的平均查询,php,mysql,sql,Php,Mysql,Sql,我有两个表,一个是评级表,另一个是财产清单,我试图基于此字段安全、娱乐、停车、公共交通、社区中心进行汇总和平均,我创建了以下SQL查询: SELECT property_listing.*, coalesce( avg( rating.safety + rating.entertainment + rating.parking + rating.public_transportation + rating.community_centers )/5 , 0 ) AS rate FROM prop
财产清单
,我试图基于此字段安全、娱乐、停车、公共交通、社区中心
进行汇总和平均,我创建了以下SQL查询:
SELECT property_listing.*, coalesce( avg( rating.safety + rating.entertainment + rating.parking + rating.public_transportation + rating.community_centers )/5 , 0 ) AS rate
FROM property_listing
JOIN rating ON property_listing.property_id = rating.property_id
ORDER BY property_listing.property_id DESC
但是在运行这个SQL之后,我只得到一行。为什么我不能用AVG获得其他记录
我的SQL小提琴:
以下方面应起作用:
SELECT property_listing.property_ID
, property_listing.title
, property_listing.user_ID
, property_listing.Property_Type_ID
, avg( rating.safety + rating.entertainment + rating.parking + rating.public_transportation + rating.community_centers )/5 AS rate
FROM property_listing
JOIN rating ON property_listing.property_id = rating.property_id
group by property_listing.property_ID
, property_listing.title
, property_listing.user_ID
, property_listing.Property_Type_ID
ORDER BY property_listing.property_id DESC
我不确定为什么您的查询不起作用,但在mysql中,您不必指定组,我也不能说它如何计算这样的查询。最好指定您的组,以便了解实际发生的情况
我删除了合并,但如果您愿意,可以重新添加它。尝试使用
group by
子句,因为avg()
是一个聚合函数,您需要按列对结果进行分组:
SELECT property_listing.*,
COALESCE(Avg(rating.safety + rating.entertainment
+ rating.parking
+ rating.public_transportation
+ rating.community_centers) / 5, 0) AS rate
FROM property_listing
JOIN rating
ON property_listing.property_id = rating.property_id
GROUP BY property_listing.property_id
ORDER BY property_listing.property_id DESC
您的实际数据集是否得到了预期的结果?
SELECT property_listing.*,
COALESCE(Avg(rating.safety + rating.entertainment
+ rating.parking
+ rating.public_transportation
+ rating.community_centers) / 5, 0) AS rate
FROM property_listing
JOIN rating
ON property_listing.property_id = rating.property_id
GROUP BY property_listing.property_id
ORDER BY property_listing.property_id DESC