排序

作者: susupp | 来源:发表于2018-07-23 14:40 被阅读0次
    ORDER BY之后,NULL的结果会汇集在开头或者结尾。但究竟是开头还是结尾,没有特殊规定。
    在排序键中可以使用别名
    SELECT
        product_id AS id,
        product_name,
        sale_price AS sp,
        purchase_price
    FROM
        Product
    ORDER BY
        sp,
        id;
    

    那么,前面说,GROUP BY中不能用别名的原因是GROUP BY会在SELECT之前运行,那么ORDER BY可以使用的原因就是ORDER BY在SELECT之后运行了。

    FROM --> WHERE --> GROUP BY --> HAVING --> SELECT --> ORDER BY

    ORDER BY中可以使用不在SELECT中的列
    SELECT
        product_name,
        sale_price,
        purchase_price
    FROM
        Product
    ORDER BY
        product_id;
    
    ORDER BY中可以使用聚合函数
    SELECT
        product_type,
        COUNT(*)
    FROM
        Product
    GROUP BY
        product_type
    ORDER BY
        COUNT(*);
    

    其实上面这个句子和下面这个句子应该是一回事。

    SELECT
        product_type,
        count(*) AS cnt
    FROM
        product
    GROUP BY
        product_type
    ORDER BY
        cnt;
    
    在 ORDER BY 子句中可以使用 SELECT 子句中未使用的列和聚合函数。
    SELECT
        product_type,
        COUNT(*)
    FROM
        Product
    GROUP BY
        product_type
    ORDER BY
        AVG(sale_price);
    

    相关文章

      网友评论

          本文标题:排序

          本文链接:https://www.haomeiwen.com/subject/vsndmftx.html