은 내가 게시물 테이블과 같이 있습니다GROUP_BY 또는 포스트 그레스/dbix 클래스와 별개은
+-----+----------+------------+------------+
| id | topic_id | text | timestamp |
+-----+----------+------------+------------+
| 789 | 2 | foobar | 1396026357 |
| 790 | 2 | foobar | 1396026358 |
| 791 | 2 | foobar | 1396026359 |
| 792 | 3 | foobar | 1396026360 |
| 793 | 3 | foobar | 1396026361 |
+-----+----------+------------+------------+
어떻게 것이라고 나는 가장 최근의 기록을 당기면서, 주제 ID에 의한 결과를 "그룹화"(에 의해 정렬에 관하여 할 수 타임 스탬프 내림차순)?
"group_by"가 아니라 "distinct on"을 원한다는 사실을 알게되었습니다. 내 포스트그레스 쿼리는 다음과 같습니다.
select distinct on (topic_id) topic_id, id, text, timestamp
from posts
order by topic_id desc, timestamp desc;
위대한 작품입니다. 그러나, DBIx :: Class에서 사용자 정의 ResultSource :: View를 작성할 필요없이 수행 할 수있는 작업인지는 알 수 없습니다. 나는 select와 columns로 group_by의 다양한 배열을 시도해 본 결과 distinct => 1을 시도했다. 결과가 반환되면 실제로 유일성을 유지하지 않는다.
쿼리를 작성하는 방법이 있습니까? 결과 집합 검색을 시도하고 있습니까? 아니면 다른 유형의 쿼리를 통해 동일한 결과를 얻을 수있는 더 좋은 방법이 있습니까?
다음과 같이 : 식별자로 'text' 또는'timestamp'와 같은 기본 유형 이름을 사용하지 마십시오. –
귀하의 의견을 보내 주셔서 감사합니다. 때로는 어떤 것들은 통제에서 벗어 났으며, "결코"또는 "항상"뭔가를하는 것은 선택의 문제가 아닙니다. 고맙게도 큰 따옴표로 col 이름을 래핑 할 수 있습니다. – FoohonPie