首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么要从SQL查询中获取此错误消息,从SQL查询中按状态删除组?

为什么要从SQL查询中获取此错误消息,从SQL查询中按状态删除组?
EN

Stack Overflow用户
提问于 2017-10-06 12:54:25
回答 2查看 60关注 0票数 0

我不太喜欢SQL,我对这个MySql查询有以下疑问:

代码语言:javascript
代码运行次数:0
运行
复制
SELECT x.*
  FROM Market_Commodity_Price_Series x
  JOIN 
     ( 
     /**
                RETURN THE LATEST INFO:
     **/
        SELECT measure_unit_id 
            , currency_id 
            , market_commodity_details_id
            , MAX(price_date) price_date
         FROM Market_Commodity_Price_Series  AS MCPS 
         INNER JOIN MarketDetails_CommodityDetails AS MD_CD ON MCPS.market_commodity_details_id = MD_CD.id
         INNER JOIN MarketDetails AS MD ON MD_CD.market_details_id = MD.id 
         INNER JOIN CommodityDetails AS CD ON MD_CD.commodity_details_id = CD.id
         WHERE MD.id = 4
         AND CD.id = 4
        GROUP BY measure_unit_id, currency_id, market_commodity_details_id
     ) y
    ON y.measure_unit_id = x.measure_unit_id
   AND y.currency_id = x.currency_id
   AND y.market_commodity_details_id = x.market_commodity_details_id
   AND y.price_date = x.price_date;

为什么从已连接的“表”中删除组measure_unit_id、currency_id、market_commodity_details_id状态以获得以下错误消息?

代码语言:javascript
代码运行次数:0
运行
复制
#42000In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'digital_services_DB.MCPS.measure_unit_id'; this is incompatible with sql_mode=only_full_group_by
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-06 12:58:23

这就是SQL语言的定义方式。

如果您选择任何集合(SUM、最大值等)除了任何非聚合项之外,还必须在所有非聚合列上包含一个GROUP子句。

票数 1
EN

Stack Overflow用户

发布于 2017-10-06 12:59:03

无论何时运行聚合查询(例如SUM、MAX、MIN.)SQL需要将所有结果按未聚合的列分组。因此,它要求您按未聚合的所有列进行分组。在您的例子中,这将是measure_unit_id、currency_id和market_commodity_details_id。

你想通过取消这个小组来达到什么目的?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46606235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档