SQL查询中的distinct有问题

时间:2011-11-30 17:39:56

标签: sql postgresql

好的,我已经尝试了一段时间但尚未成功,这有点神秘,所以请帮忙。

vehicle table

这是我的桌子。我需要选择所有不同的模型并按vehicle_type对它们进行分组/排序。在我开始使用DISTINCT之前一切正常。 我正在使用postgres 请问查询帮助不大?

2 个答案:

答案 0 :(得分:2)

假设模型可以在多种车型之间共享:

SELECT vehicle_type,model 
FROM vehicle 
GROUP BY vehicle_type,model 
ORDER BY vehicle_type,model

答案 1 :(得分:1)

数据模型无法充分捕获您的报告要求,因为需要检查列数据以对其进行分类,但类似于: (根据您的描述推断可能的关系)

SELECT CASE (vt.description ~ 'car$') 
       WHEN TRUE THEN 'car'
                 ELSE 'van' 
       END AS vehicle_group,
       vt.description AS vehicle_sub_group,
       COUNT (*) -- or whatever aggregates you might need
  FROM vehicle v
       INNER JOIN vehicle_type vt ON vt.vehicle_type = v.vehicle_type
 GROUP BY 1,2;

可能会让您在所述情况下达到您所需要的程度,但这是一种处理数据的脆弱方式,并且不能很好地应对其他复杂性,例如:如果你需要进一步将车分为轿车,跑车,四轮驱动车或面包车,平板车,7.5吨,15吨等。