理论上,我应该能够在dashDB的SQL语法中运行GROUP BY子句。这有效:
... std::vector<CustomLayout> customLayouts; // private class member variable
void App::loadCustomLayouts() {
CustomLayout customLayout;
// ... create HWND
onMessage(WM_RBUTTONDOWN, [customLayout, this]() {
auto it = std::remove(customLayouts.begin(), customLayouts.end(), customLayout);
customLayouts.erase(it); // occasionally causes access violation
});
}
然而,这不是:
SELECT MESSAGE_BODY, MESSAGE_RETWEET_COUNT FROM COOLSCHEMA.DRIL_TWEETS
ORDER BY MESSAGE_RETWEET_COUNT DESC
LIMIT 100;
这是我从IBM Bluemix dashDB Web仪表板中的Run SQL Web控制台获得的错误。旁注,我无法复制/粘贴它,并且它最终被切断,因为我既没有巨型显示器,也没有能够在错误消息面板中滚动。我不得不使用开发人员工具复制出包含它的div的innerHTML:
以&#34; MESSAGE_RETWEET_COUNT&#34;开头的表达式在SELECT子句中指定,HAVING子句或ORDER BY子句未在GROUP BY子句中指定,或者它在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条款。
答案 0 :(得分: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;