2017-11-06 1 views
2

오류 : 가 부질 이용하는 경우]가 절하여 GROUP 나타나야 또는 총 함수에 사용될 access_log.id포스트 그레스 오류 상태

select 
    to_char(date_trunc('day',create_time),'DD MON, YYYY') as create_time, 
    to_char((max(create_time) - min(create_time)),'HH24:mi') as time_spent, 
    id 
from 
    access_log 
group by 
    user_id, actionlink_id, date_trunc('day',create_time) 
+0

당신 USER_ID, actionlink_id 선택 ID로 그룹? .. 무엇을 당신은 달성하려고합니까? .. –

+0

나는 다음 페이지로 ID를 보내려고합니다. 그 이유는 ID를 반환하고 싶습니다 –

+0

일부 짧은 데이터 샘플 및 예상되는 결과를 제공하십시오. –

답변

1

access_log.id 해당 테이블의 각 행마다 고유하므로 쿼리에서 유용한 정보를 얻는 것은 거의 불가능합니다. 대신 user_id 님이이 작업을 수행하려고하신 것 같습니다. 그러나 오류 메시지가 진실을 말하고있는 경우 idselect clause에 포함 시키려면 group by 절에 나와야합니다. 읽어 : 각 항목의

생각해 당신의 select clause 2 개 종류로 떨어지는 같이

  1. 를 집계 이들은이 비 응집 MINMAXCOUNTAVG을 가진 사람과 유사한 기능
  2. 은 함수가없는 것들이며 행이 어떻게 형성되는지를 결정하는 것은 이것들입니다. 이러한 비 집계 항목 각각은 group by 절에 나타나야합니다.이 열의이 정보는 최종 결과의 행 구조를 만드는 데 사용됩니다. 당신이 group by 절에 date_trunc('day',create_time)을 포함하기 때문에 대신 날 때마다 행 예를 들어, 현재 행은 "하루"입니다
 
select 
     user_id ---- changed this to user_id 
    , actionlink_id --- & added this 
    , to_char(date_trunc('day',create_time),'DD MON, YYYY') as create_time 

    , to_char((max(create_time) - min(create_time)),'HH24:mi') as time_spent 
    , MAX(id) as max_id 
from 
    access_log 
group by-- all non-aggregating select clause items go here 
    user_id 
    , actionlink_id 
    , date_trunc('day',create_time)