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);
网友评论