在Postgresql中选择多个别名为且按别名分组的列
我对这个查询有问题。我想选择ID字段,然后日期时间戳字段有一个别名,但按别名分组。如果不包含ID字段,我就无法做到这一点,但这样它就无法保持组所提供的唯一性。这是我的查询,它不起作用。我得到一个关于需要包含ID字段的错误在Postgresql中选择多个别名为且按别名分组的列,postgresql,Postgresql,我对这个查询有问题。我想选择ID字段,然后日期时间戳字段有一个别名,但按别名分组。如果不包含ID字段,我就无法做到这一点,但这样它就无法保持组所提供的唯一性。这是我的查询,它不起作用。我得到一个关于需要包含ID字段的错误 SELECT id, to_timestamp(start_date)::date as sdate FROM events WHERE end_date > 1349306845 GROUP BY sdate ORDER BY sdate ASC LIMIT 20 更
SELECT id, to_timestamp(start_date)::date as sdate FROM events WHERE end_date > 1349306845 GROUP BY sdate ORDER BY sdate ASC LIMIT 20
更新:
在使用下面的函数后,它可以根据需要工作
SELECT max(id) as id, to_timestamp(start_date)::date as sdate FROM events WHERE end_date > 1349306845 GROUP BY sdate ORDER BY sdate ASC LIMIT 20
没关系,我只是想出来了,而且似乎很管用。
SELECT id, to_timestamp(start_date)::date as sdate
FROM events
WHERE start_date IN
(
SELECT start_date as sdat
FROM events
WHERE end_date > 1349306845
GROUP BY sdat
ORDER BY sdat
ASC LIMIT 20
)
SELECT id, to_timestamp(start_date)::date as sdate
FROM events
WHERE start_date IN
(
SELECT start_date as sdat
FROM events
WHERE end_date > 1349306845
GROUP BY sdat
)
ORDER BY sdate
ASC LIMIT 20