说我有这样的查询:
SELECT
car.id,
car.make,
car.model,
car.vin,
car.year,
car.color
FROM car GROUP BY car.make
我想通过make对结果进行分组,这样我就可以消除任何重复的结果。我基本上是想做一个SELECT DISTINCT
。但是我得到了这个错误:
ERROR column must appear in the GROUP BY clause or be used in an aggregate function
当我不希望在一个组中看到任何一个列时,按列分组似乎很愚蠢。我该如何解决这个问题?
答案 0 :(得分:0)
而不是let date = NSDate()
self.datePickerFrom.maximumDate = date as Date
self.datePickerTo.minimumDate = datePickerFrom.date
,请使用GROUP BY
:
DISTINCT ON
这将为每个make返回一个任意行。哪排?任意一个。您可以在SELECT DISTINCT ON (c.make) c.*
FROM car c
ORDER BY c.make;
中包含第二个键,以确定您想要的特定行(最便宜,最旧等)。
答案 1 :(得分:0)
SELECT列表中的所有列名必须出现在GROUP BY子句中,除非name仅用于聚合函数。 PostgreSQL只允许您省略GROUP BY子句列,这些列在功能上依赖于GROUP BY中的列。