2016-07-15 9 views
-1

이론적으로 dashDB의 SQL 구문에서 GROUP BY 절을 실행할 수 있어야합니다. 이 작품 :IBM dashDB에서 신비하게 실패한 GROUP BY 절

SELECT MESSAGE_BODY, MESSAGE_RETWEET_COUNT FROM COOLSCHEMA.DRIL_TWEETS 
ORDER BY MESSAGE_RETWEET_COUNT DESC 
LIMIT 100; 

그러나,이되지 않습니다

SELECT MESSAGE_BODY, MESSAGE_RETWEET_COUNT FROM COOLSCHEMA.DRIL_TWEETS 
GROUP BY MESSAGE_BODY 
ORDER BY MESSAGE_RETWEET_COUNT DESC 
LIMIT 100; 

이 내가 IBM Bluemix dashDB 웹 대시 보드에서 실행 SQL 웹 콘솔에서 얻을 오류입니다. 사이드 노트, 복사/붙여 넣기가 불가능했고, 거대한 모니터가 없거나 오류 메시지 패널에서 스크롤 할 수있는 기능이 없기 때문에 끝 부분이 잘립니다. 나는 그것을 포함하고있는 div의 innerHTML을 복사하는 개발자 도구를 사용해야했다.

GROUP BY 절에 SELECT 절, HAVING 절 또는 ORDER BY 절에 "MESSAGE_RETWEET_COUNT"가 지정되어있는식이 지정되지 않았다 또는 컬럼 함수와 함 2 SELECT 절, HAVING 절 또는 ORDER BY 절에 있고 GROUP BY 절이 지정되지 않았습니다. SQLCODE = -119, SQLSTATE = 42803, DRIVER = 3.66.46

어쨌든; 누구든지 내 GROUP BY 절이 작동하지 않는 이유를 알고 있습니까? 오류 코드 설명서에 HAVING 절이 있다고 나와 있습니다 (https://www.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/codes/src/tpc/n119.html). 나는 HAVING 절이 없습니다.

답변

2

GROUP BY에서 모든 집계되지 않은 열은 GROUP BY 절에 있어야합니다. 나는 당신이 원할지도 모른다고 추측합니다 :

SELECT MESSAGE_BODY, SUM(MESSAGE_RETWEET_COUNT) 
FROM COOLSCHEMA.DRIL_TWEETS 
GROUP BY MESSAGE_BODY 
ORDER BY SUM(MESSAGE_RETWEET_COUNT) DESC 
LIMIT 100;