我一直在尝试将这个查询放在一起,但是当我认为我已经完成并尝试运行它时,我收到了该错误。我很确定这与这条线有关:
-> AND SUM(cr.file_size) > 5000000000
SELECT ss.TITLE
-> ,SUM(cr.file_size)
-> ,gr.user_id
-> ,ru.givenname
-> ,ru.sn
-> ,ru.mail
-> FROM CONTENT_RESOURCE cr
-> ,SAKAI_SITE ss
-> ,SAKAI_REALM_RL_GR gr
-> ,SAKAI_REALM rl
-> ,rutgers_user ru
-> ,SAKAI_USER_ID_MAP map
-> WHERE cr.CONTEXT = ss.SITE_ID
-> AND SUM(cr.file_size) > 5000000000
-> AND rl.realm_id = CONCAT ('/site/',ss.site_id)
-> AND rl.realm_key = gr.realm_key
-> AND gr.role_key IN (7,3)
-> AND gr.user_id = map.user_id
-> AND map.eid = ru.uid
-> INTO OUTFILE '/tmp/siteContentUsage.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
最佳答案
您需要一个having
子句。聚合函数不属于 where
子句:
HAVING SUM(cr.file_size) > 5000000000
当然,这前提是您还有一个 group by
子句,因为 having
子句应该位于 group by
之后。我不确定那是什么,也许是group by user_id
。
此外,您应该学习正确的显式 join
语法。简单规则:切勿在 from
子句中使用逗号。
关于mysql - 对于冗长的 MySql 查询,组函数的使用无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27325330/