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

如何按关联房产数量对Supabase的property_owners排序或筛选?

Supabase按关联房产数量排序/筛选业主的实现方案

你的原有查询代码:

let query = supabase
      .from("property_owners")
      .select(
        `id, full_name,  property(id), address(id, street, house_number, city, zipcode, property(id))`,
      );

这并非Supabase的功能限制,你可以借助PostgreSQL的聚合、分组能力实现需求,以下是具体实现方式:

1. 按关联房产数量排序

在查询中添加聚合函数统计房产数量,再基于该统计值排序:

let query = supabase
  .from("property_owners")
  .select(`
    id, 
    full_name, 
    property(id), 
    address(id, street, house_number, city, zipcode, property(id)),
    count(property.id) as property_count
  `)
  .order("property_count", { ascending: false }); // 从多到少排序,ascending设为true则从小到大
  • count(property.id) 用于统计每个业主关联的房产总数,并命名为property_count
  • 通过order方法指定按统计字段排序

2. 筛选拥有超过5套房产的业主

需要结合分组和条件筛选来实现:

let query = supabase
  .from("property_owners")
  .select(`
    id, 
    full_name, 
    property(id), 
    address(id, street, house_number, city, zipcode, property(id)),
    count(property.id) as property_count
  `)
  .groupBy("id, full_name") // 按业主唯一标识分组,需包含所有非聚合字段
  .having("property_count", "gt", 5); // 筛选房产数量大于5的业主
  • groupBy 确保按单个业主分组统计房产数,需包含select中所有非聚合的字段(如id、full_name)
  • having 用于对聚合后的结果设置筛选条件,gt代表"大于"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 08:15:03