第十八章、练习题.sql 852 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #第十八章、练习题
  2. USE dbtest18;
  3. #1、创建students数据表,如下:
  4. CREATE TABLE students(
  5. id INT PRIMARY KEY AUTO_INCREMENT,
  6. student VARCHAR(15),
  7. points TINYINT
  8. );
  9. #2. 向表中添加数据如下
  10. INSERT INTO students(student,points)
  11. VALUES
  12. ('张三',89),
  13. ('李四',77),
  14. ('王五',88),
  15. ('赵六',90),
  16. ('孙七',90),
  17. ('周八',88);
  18. #3. 分别使用RANK()、DENSE_RANK() 和 ROW_NUMBER()函数对学生成绩降序排列情况进行显示
  19. #方式一:
  20. SELECT
  21. ROW_NUMBER() OVER (ORDER BY points DESC) AS "排序1",
  22. RANK() OVER (ORDER BY points DESC) AS "排序2",
  23. DENSE_RANK() OVER (ORDER BY points DESC) AS "排序3",
  24. student,points
  25. FROM students;
  26. #方式二
  27. SELECT
  28. ROW_NUMBER() OVER w AS "排序1",
  29. RANK() OVER w AS "排序2",
  30. DENSE_RANK() OVER w AS "排序3",
  31. student,points
  32. FROM students WINDOW w AS (ORDER BY points DESC);