zoukankan      html  css  js  c++  java
  • SQL中使用GROUP BY注意事项

    书写聚合建之外的列名会发生错误

    使用聚合函数时,SELECT子句中只能存在以下3中元素

    • 常数
    • 聚合函数
    • GROUP BY指定的列名
    -- 以下sql会报错
    SELECT product_name, purchase_price, COUNT(*)
    FROM Product
    GROUP BY purchase_price;
    
    -- 正确写法
    SELECT purchase_price, COUNT(*)
    FROM Product
    GROUP BY purchase_price;
    

    GROUP BY子句中使用别名可能会报错

    -- 可能会报错的写法
    SELECT product_type AS pt, COUNT(*)
    FROM Product
    GROUP BY pt;
    
    -- 正确写法
    SELECT product_type AS pt, COUNT(*)
    FROM Product
    GROUP BY product_type;
    

    这个是有sql语句的执行顺序决定的,因为是先执行的GROUP BY语句,再执行的SELECT语句

    GROUP BY子句的返回结果是随机排序的

    不要在WHERE子句中使用聚合函数

    -- 错误写法
    SELECT product_type, COUNT(*)
    FROM Product
    WHERE COUNT(*) = 2
    GROUP BY product_type;
    
    -- 正确写法
    SELECT product_type, COUNT(*)
    FROM Product
    GROUP BY product_type
    HAVING COUNT(*) = 4;
    
  • 相关阅读:
    PAT 1059. Prime Factors
    PAT 1058. A+B in Hogwarts
    关于树状数组
    PAT 1057. Stack
    PAT 1056. Mice and Rice
    PAT 1055. The World's Richest
    PAT 1054. The Dominant Color
    fft_filter  designed to filter gridded data in an a
    matlab 1 yr oscillations
    RMVANNUAL
  • 原文地址:https://www.cnblogs.com/guolizhi/p/13433861.html
Copyright © 2011-2022 走看看