• 两个看似相同,结果不同的SQL逻辑


    一朋友问我的,看着挺有意思,记录一下:

    表item1,里面有上面三个字段,一共10条数据,接下来有两个相似的sql语句得到了不一样的查询结果。

    表数据如下:

     两条SQL及查询结果:

     我的理解答:

    SQL1 循环一遍,i表拿出每一列值去和j表相同列的平均值做比较

    比如,i表拿出i.i_item_sk=4的列,i.i_current_price=1.35,满足 i_category=Children的行有三个,三个i_current_price取平均值是4.68,然后这个平均值的1.2倍和i.i_current_price=1.35比较大小判断是否满足条件。


    SQL2 循环两遍,先是子查询里i和j做笛卡尔积得出集合k的平均值,然后i表拿出每一列去和k的平均值做比较

    第二个SQL较为好理解,先是子查询算出两个表的关联结果求平均值,其实就一个平均值,然后i表中的每一列i.i_current_price和这个平均值的运算作比较,判断是否满足条件。

  • 相关阅读:
    js实现对身份证校验
    zip解压缩
    zip压缩
    文件内容编解码
    文件的操作
    Mysql账号管理
    深度优先算法DFS
    Java常见知识问答
    Hibernate的单向OneToMany、单向ManyToOne
    Angularjs在线编辑器
  • 原文地址:https://www.cnblogs.com/nandi001/p/12469288.html
Copyright © 2020-2023  润新知