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

如何用单条SQL查询获取汽车品牌、型号、燃料的唯一值?

解决方案

可以用单条SQL同时获取这三类数据的唯一值,以下是两种实用方案:

方案一:返回包含三个去重数组的单行结果

适合需要一次性获取所有类别选项列表的场景,每个数组对应一个筛选框的选项集合:

SELECT
  (SELECT ARRAY_AGG(DISTINCT brand ORDER BY brand) FROM cars) AS brands,
  (SELECT ARRAY_AGG(DISTINCT model ORDER BY model) FROM cars) AS models,
  (SELECT ARRAY_AGG(DISTINCT fuel ORDER BY fuel) FROM cars) AS fuels;

通过DISTINCT确保每个字段值唯一,ORDER BY可让选项按有序方式展示,前端直接解析数组即可填充对应筛选框。

方案二:按类别返回多行结果

适合需要按类别区分每条选项数据的场景,返回的每条记录包含类别标识和对应唯一值:

SELECT 'brand' AS category, brand AS option_value FROM cars GROUP BY brand
UNION ALL
SELECT 'model' AS category, model AS option_value FROM cars GROUP BY model
UNION ALL
SELECT 'fuel' AS category, fuel AS option_value FROM cars GROUP BY fuel;

这种方式返回的结果可直接按category字段分组,分别提取品牌、型号、燃料的选项列表。

你之前的SQL问题在于GROUP BY model, brand, fuel,这会把每个品牌-型号-燃料的组合都作为独立分组,导致聚合后的数组包含大量重复值,完全不符合需求。上面两种方案都能避免该问题,且只需执行一次SQL查询。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:02:04