对于冗长的MySql查询,使用组函数无效

时间:2014-12-05 21:58:10

标签: mysql sql

我一直试图将这个问题放在一起但是当我认为我已经完成并试图运行它时,我得到了这个错误。我很确定这是关于这条线的:

- > AND SUM(cr.file_size)> 50亿

   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';

1 个答案:

答案 0 :(得分:1)

您需要having条款。聚合函数不属于where子句:

HAVING SUM(cr.file_size) > 5000000000

当然,这也预示着你有一个group by条款,因为having条款应该在group by之后。我不确定那是什么,也许group by user_id

此外,您应该学习正确的显式join语法。简单规则:永远不要在from子句中使用逗号。