0

このクエリに問題があります。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 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
4

1 に答える 1

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 
于 2012-10-04T05:48:06.213 に答える