开发者社区> 问答> 正文

SQL语句使用聚合函数之后有些字段没有分组显示,那它显示的规则是什么?

已解决

SELECT tb.userInfoId,MAX(hk.backTime) backTime,hk.backMoney

        FROM (SELECT orderCode,backTime,backMoney 
              FROM repaymentList 
              WHERE backTime <= NOW()) hk
        INNER JOIN OrderList tb ON tb.orderCode = hk.orderCode
        GROUP BY tb.userInfoId
      

hk.backMoney这个字段会显示的是最大的hk.backTime对应的数据吗?
多个字段使用聚合函数之后,如果没有对其它的字段进行分组,这时候只有一条,其他字段是怎么取的.?

展开
收起
我的中国 2016-02-08 14:20:07 3779 0
1 条回答
写回答
取消 提交回答
  • R&amp;S网络资深工程师 ,阿里云论坛官方版主,阿里云云计算ACP,春考教学网站长,IT技术晋级之路专辑作者
    采纳回答

    hk.backMoney这个字段会显示的是最大的hk.backTime对应的数据吗?
    因为你用了 Group By 所以显示的是同一个 userInfoId 下最大的那个 hk.backTime

    多个字段使用聚合函数之后,如果没有对其它的字段进行分组,这时候只有一条,其他字段是怎么取的?
    其他的字段的取法和你使用的数据库具体实现相关,可能是默认排序,也有可能是随机返回,所以一般来说在聚合查询中, Select 非聚合字段没有意义。如果想要实现类似取出某个用户最近的一条操作记录的话,那么就需要在外面再包一层查询语句。

    2019-07-17 18:28:20
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载