• sql常用语法


    1、GROUP BY 和 HAVING的用法

    where和having的区别:

    • having子句筛选成组后的各种数据, having子句在聚合后对组记录进行筛选。
    • where子句在聚合前先筛选记录,作用在group by和having子句前。

    例子:

    显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。
    SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region HAVING SUM(area)>1000000

    https://blog.csdn.net/tyt_XiaoTao/article/details/81532495

    2、GROUP BY 和 ORDER BY一起使用

      写程序也有很长的一段时间了,有些东西我总不曾去思考,很少去积累一些有用的东西,总喜欢“用要即拿”的心态来对待,这是非常不好的坏习惯。这样只会造成依赖心太强,每当遇到一些小小的问题都需要去翻资料。就好像今天写一条查询语句的时候,连group by 和 order by连用都不清楚,我想我以后得注意这些问题。

    正确使用如下:

    以下是引用片段:
    SELECT dep.department_name, MAX(emp.salary), MIN(emp.salary)  
    FROM departments dep  
    LEFT JOIN employees emp  
    ON (dep.department_id = emp.department_id)  
    GROUP BY dep.department_name  
    --order by 的列,必须是出现在group by 子句里的列   
    ORDER BY dep.department_name DESC

    错误使用如下:(执行后报错:ORA-00979:不是GROUP BY 表达式)

    以下是引用片段:
    SELECT dep.department_name, MAX(emp.salary), MIN(emp.salary)  
    FROM departments dep  
    LEFT JOIN employees emp  
    ON (dep.department_id = emp.department_id)  
    GROUP BY dep.department_name  
    --order by 的列,应该出现在group by 子句中   
    ORDER BY dep.department_id DESC

    https://www.cnblogs.com/momoyan/p/9151633.html

  • 相关阅读:
    loj 3285 「USACO 2020 US Open Platinum」Circus
    UOJ Round #19 简要题解
    AtCoder Grand Contest 043 简要题解
    JOISC 2020 部分题目简要题解
    HNOI 2019 简要题解
    十二省联考 2019 简要题解
    九省联考 2018 简要题解
    loj 6391 「THUPC2018」淘米神的树 / Tommy
    loj 6703 小 Q 的序列
    Goodbye Jihai 部分题目简要题解
  • 原文地址:https://www.cnblogs.com/guoyu1/p/13685047.html
Copyright © 2020-2023  润新知