wonderful-sql Task02

基础查询与排序

相关法则

  • 在SELECT语句中使用DISTINCT可以删除重复行。
  • 希望选取NULL记录时,需要在条件表达式中使用IS NULL运算符。希望选取不是NULL的记录时,需要在条件表达式中使用IS NOT NULL运算符。

运算符优先级

聚合函数应用法则

  • COUNT 聚合函数运算结果与参数有关,COUNT(*) / COUNT(1) 得到包含 NULL 值的所有行,COUNT(<列名>) 得到不包含 NULL 值的所有行。
  • 聚合函数不处理包含 NULL 值的行,但是 COUNT(*) 除外。
  • MAX / MIN 函数适用于文本类型和数字类型的列,而 SUM / AVG 函数仅适用于数字类型的列。
  • 在聚合函数的参数中使用 DISTINCT 关键字,可以得到删除重复值的聚合结果。

练习题

1. 编写一条SQL语句,从 product(商品) 表中选取出“登记日期(regist_date)在2009年4月28日之后”的商品,查询结果要包含 product name 和 regist_date 两列。

SELECT
	product_name,
	regist_date 
FROM
	product 
WHERE
	regist_date < '2009-04-28';

2. 请说出对product 表执行如下3条SELECT语句时的返回结果。

1.

SELECT *
  FROM product
 WHERE purchase_price = NULL;

返回结果为空

2.

SELECT *
  FROM product
 WHERE purchase_price <> NULL;

返回结果为空

3.

SELECT *
  FROM product
 WHERE product_name > NULL;

返回结果为空

3.

SELECT
	product_name,
	sale_price,
	purchase_price 
FROM
	product 
WHERE
	( sale_price - purchase_price ) >= 500;

4.

SELECT
	product_name,
	product_type,
	( sale_price * 0.9 - purchase_price ) AS profit 
FROM
	product 
WHERE
	product_type IN ( '办公用品', '厨房用具' ) 
	AND ( sale_price * 0.9 - purchase_price ) > 100;

5. 请指出下述SELECT语句中所有的语法错误。

SELECT product_id, SUM(product_name)
--本SELECT语句中存在错误。
  FROM product 
 GROUP BY product_type 
 WHERE regist_date > '2009-09-01';
  1. SUM函数使用的是全角的括号
  2. SUM函数不能用于文本类型
  3. GROUP BY子句应该在WHERE子句之后
  4. 启用ONLY_FULL_GROUP_BY时,SELECT列表中的非聚合列(如product_id)必须在GROUP BY子句中出现

6.

SELECT
	product_type,
	SUM( sale_price ),
	SUM( purchase_price ) 
FROM
	product 
GROUP BY
	product_type 
HAVING
	SUM( sale_price ) > SUM( purchase_price ) * 1.5;

7.

SELECT
	* 
FROM
	product 
ORDER BY
	-regist_date, purchase_price;

posted @ 2023-07-23 23:32  浅墨39  阅读(32)  评论(0)    收藏  举报