SQL题,Python做

01 问题描述

这个SQL题来源于自己的 Python 学习交流群,具体是这样的:用一条SQL语句查询出每门课都大于80的学生姓名和总成绩。

02 解题思路

本人使用Python来解决这个问题,大概的思路如下:

  • 首先筛选出课程成绩小于等于80的列(布尔选择)。
  • 取这些列的学生姓名的唯一值。
  • 这些学生姓名就是不符合条件的,我们反选符合条件的。
  • 最后用groupby求和即可完成。
03 解题代码

① 通过布尔选择成绩小于等于80的列。

data[data['score'] <= 80]

其实通过结果可以看出,张三和李四就是不符合条件的学生了。

② 获取不符合条件的学生姓名唯一值

data[data['score'] <= 80]['name'].unique()

③ 我们只需反选不符合条件的学生姓名列,就可以筛选出符合条件的学生的成绩单了。

data[~data['name'].isin(data[data['score'] <= 80]['name'].unique())]

④ 最后,我们使用groupby就可以完成整个题目的要求了。

data[~data['name'].isin(data[data['score'] <= 80]['name'].unique())].groupby('name')['score'].sum()
04 最后

公众号后台回复【入群】,加入学习交流群,一起交流学习吧~

如果有更好的方法,也可以评论区留言告诉我哦~

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

推荐阅读更多精彩内容

  • T-SQL语句创建表 如图1. IDENTITY的应用 在图1创建的两个表中,SortId和CommodityId...
    肉肉要次肉阅读 884评论 0 0
  • 一、sql语句 ~~sql语句书写顺序: select from where groupby having ord...
    devstrongzhao阅读 2,130评论 1 2
  • 前段时间很畅销的一本书叫《巨婴国》,武志红老师写的,“全能自恋”这个专业的心理学词汇就出自这里,具体解释如下图 这...
    久酱紫阅读 750评论 0 1
  • 妈妈您好! 在母亲节即将到来之际,这是您深爱儿子给您写的一封信。虽然,它只是一封小小的礼物,但是,儿子的祝福...
    程奕博阅读 1,124评论 0 1
  • 知其所以然,用现在的流行的话来说就是完全解构了它的底层逻辑,当你真正做到了了然于胸,那对于一切变化都尽在掌控之中,...
    春风十里木有一路桃花阅读 285评论 0 3