You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中计算两居室与三居室公寓每平价格的百分比差异

2居室与3居室公寓每平方米价格百分比差异SQL实现方案

你可以通过条件聚合一次性取出两类房型的平均单价,再套入公式计算,无需执行两次单独查询,实现逻辑如下:

可直接运行的SQL语句

SELECT 
    ((avg_2room - avg_3room) / ((avg_2room + avg_3room) / 2)) * 100 AS price_diff_percent
FROM (
    SELECT 
        -- 分别聚合2居室、3居室的平均每平价格
        AVG(CASE WHEN NoPP = 2 THEN ValeurFonciere / SurCar1 END) AS avg_2room,
        AVG(CASE WHEN NoPP = 3 THEN ValeurFonciere / SurCar1 END) AS avg_3room
    FROM mutation
    -- 替换原隐式连接为显式内连接,逻辑更清晰
    INNER JOIN bien ON mutation.Bien_ID = bien.Bien_ID
    WHERE 
        TypeLoc = 'Appartement'
        AND NoPP IN (2,3) -- 提前过滤仅保留需要的房型,提升查询效率
        AND SurCar1 > 0 -- 避免建筑面积为0导致的除以0错误
) AS room_price_avg;

逻辑说明

  • 内层子查询使用CASE WHEN做条件聚合,分别统计符合要求的2居室平均单价(对应公式中的A)和3居室平均单价(对应公式中的B)
  • 外层查询直接套用你给出的百分比差异公式,返回的price_diff_percent字段就是最终的百分比差值

内容的提问来源于stack exchange,提问作者casper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 23:00:00