DataWhale组队学习:SQL-TASK02

1、select 用法(略)
2、where 用法(略)
3、关于*和DISTINCT

select * 
  from table1
 where column1 = 'certain';
select distinct column1
  from table1
 where column1 = 'certain'

4、COUNT(*)会得到包含NULL的数据行数,而COUNT(<列名>)会得到NULL之外的数据行数。

5、MAX/MIN函数几乎适用于所有数据类型的列。SUM/AVG函数只适用于数值类型的列

6、sql在使用having子句时,select语句的顺序是fromwheregroup byhavingselect~order by

练习题如下:
首先,先看下product原始的表格:(直接select * from product)


image.png

NO1.


image.png

这个题考察的是where的用法,非常基础,解题如下:

select product_name,
       regist_date
    from product
   where regist_date > '2009-04-28';

看下结果


image.png

NO.2:


image.png

这个考察对null本身&逻辑运算本身的理解,逻辑运算比较符是对真值结果的比较,而null本身的真值结果既不为真,也不为假,是一种不确定状态,所以不可以用比较符(<,>,<>,=);对于null来讲,应该用 IS NULL 或者 IS NOT NULL,而且没有跟NULL比大小的,因为根本比不出来~
所以结果,应该是这以上三种均select不出来任何信息,除非它有一行记录都是null值。
1和2可以改写,3的逻辑就是错的。1和2改写如下:

SELECT *
  FROM product
 WHERE purchase_price IS NULL;
SELECT *
  FROM product
 WHERE purchase_price IS NOT NULL;

NO.3


image.png

这个考察的其实是sql的嵌套语句用法,解题如下:

SELECT product_name,sale_price,purchase_price
    FROM(
        SELECT product_name,sale_price,purchase_price,sale_price-purchase_price as diff
         FROM product
     )table1
    WHERE diff >= 500;
image.png

NO.4:


image.png

这个就是一个简单的计算:

select product_name,product_type,sale_price*0.9-purchase_price as profit
    from product
   where sale_price*0.9-purchase_price >= 100

结果如下:


image.png

NO.5:


image.png

一行一行看,
1、逗号和括号写成了中文,wrong
2、groupby和where顺序反了
3、groupby中的关键字在select中竟然没有,而且select除了聚合函数以外出现了groupby中没有的关键字。
3、结尾分号写成了中文的,wrong

NO.6:


image.png

题目应该是大于1.5

SELECT product_type,sale_price_sum,purchase_price_sum
     FROM(
         SELECT product_type,sum(sale_price) as sale_price_sum,sum(purchase_price) as purchase_price_sum 
            FROM product
        GROUP BY product_type
        )table1
    WHERE sale_price_sum > purchase_price_sum*1.5;
image.png

NO.7


image.png

这是根据两个基准列进行的排序,regist_date 倒序,在regist_date 基准下,再对purchase_price正序。

SELECT * 
    FROM product
    ORDER BY regist_date desc,purchase_price;

image.png

但是这里有一点是对于NULL值,要注意当用于排序的列名中含有NULL时,NULL会在开头或末尾进行汇总。题目是在开头汇总,我这里的结果是在末尾汇总。

今天又是一起学习的一天,完成和坚持是第一步,所以今天又走了一步呢我想你也和我一样

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这次一共打算组织14个组队学习,涵盖了AI领域从理论知识到动手实践的内容,难度系数分为低、中、高档,可以按照需要参...
    布客飞龙阅读 421评论 0 4
  • 参考资料:《SQL基础教程》 数据准备 在查询数据之前,需要往数据库里插入需要用到的数据。 1.创建数据库 2.创...
    活用数据阅读 2,224评论 0 1
  • 0进入PostgreSQL 1数据库和SQL 1-1数据库是什么 数据库Database(DB):将大量数据保存起...
    los_pollos阅读 447评论 0 1
  • 1 安装MySQL 进入MySQL官网,登录 如何在Macbook上安装MySQL_百度经验 我之后改了个,怕忘记...
    乔大叶_803e阅读 528评论 0 0
  • 一. 数据库与SQL语言简介简介 1.1 SQL:与数据库交互的语言 SQL的全称是结构化查询语言(Structu...
    Leesper阅读 962评论 0 3