2012-10-04 33 views
0

我对此查询有问题。我想选择ID字段,然后日期时间戳字段具有别名,但是别名为别名。我不能在没有包含ID字段的情况下做到这一点,但然后它不会保持组提供的唯一性。这是我的查询不起作用。我得到一个关于需要包含ID字段的错误。在Postgresql中选择具有别名和组别别名的多个列

SELECT id, to_timestamp(start_date)::date as sdate FROM events WHERE end_date > 1349306845 GROUP BY sdate ORDER BY sdate ASC LIMIT 20 

UPDATE: 使用功能,如下面它的工作需要之后。

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 
+0

没关系我想通了,似乎工作。 –

回答

1
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 
+0

不错,我会接受它,因为它也可以。谢谢! –

+0

很好,谢谢.. – solaimuruganv