select t.QNA_ID, t.QNA_CLA_ID, t.INQR_CN, t.ANS_CN, t.ANS_CN_CBT, t.ANS_TYP_CD, t.INQ_CNT, t.RVSN_STT_CD, t.USE_YN, t.DEL_YN, t.FRST_REG_DT, t.FRST_RGTR, t.LAST_MDFCN_DT, t.LAST_MDFR, t.LAST_SYNC_DT, t.QNA_LV, tc.QNA_CLA_ID, tc.QNA_CLA_LRG_ID, tc.QNA_CLA_MID_ID, tc.QNA_CLA_SML_ID, tc.QNA_CLA_LEV, tc.QNA_CLA_NM from T_QNA t left join T_QNA_CLA tc on tc.qna_cla_id = t.QNA_CLA_ID;
이구문을 카운트 하고싶어서
select count(*), t.QNA_ID, t.QNA_CLA_ID, t.INQR_CN, t.ANS_CN, t.ANS_CN_CBT, t.ANS_TYP_CD, t.INQ_CNT, t.RVSN_STT_CD, t.USE_YN, t.DEL_YN, t.FRST_REG_DT, t.FRST_RGTR, t.LAST_MDFCN_DT, t.LAST_MDFR, t.LAST_SYNC_DT, t.QNA_LV, tc.QNA_CLA_ID, tc.QNA_CLA_LRG_ID, tc.QNA_CLA_MID_ID, tc.QNA_CLA_SML_ID, tc.QNA_CLA_LEV, tc.QNA_CLA_NM from T_QNA t left join T_QNA_CLA tc on tc.qna_cla_id = t.QNA_CLA_ID;
이렇게 작성을 하니 SQL Error [1140] [42000]: (conn=1229) In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'scpdb.t.QNA_ID'; this is incompatible with sql_mode=only_full_group_by 라는 에러가 계속 뜨네요 찾아보니까 my.inf? 들어가서 설정을 바꿔야한다는데 다른방법은 없을까요?
기존 쿼리는 여러행을 반환합니다.
카운트는 하나의 행을 반환합니다.
이 두가지 서로 다른 성격의 결과가 단순하게 서로 어우러질 수는 없습니다.
MySQL 에서는 이런 비표준 구문이 허용되기는 하지만
결과가 의미하는 바가 뭔지? 알 수 없는 이상한 쿼리가 되어 버립니다..
하여 사용을 권하지 않습니다.
표준 구문으로는 다음과 같이 가능합니다.
1. 조회 컬럼 다 빼고 COUNT(*) 만 하거나
2. 분석함수 이용 COUNT(*) OVER() 추가 하거나
감사합니다 조인문이라서 앞에 조회 컬럼이 있어야하는줄 알고 착각했네요 카운트만 조회하는거로 바꿨습니다.