0906练习题

SQL部分

1、求拥有2辆及以上车的人每辆车的购车金额占个人总购车金额的比重
建表 CREATE TABLE car ( userid int, carid varchar(10), price decimal(6, 2), date date

答案:

select car.userid,carid,concat(round(price/sum_price*100,2),"%") as '占比'
from
car 
inner join
(SELECT userid, SUM(price) AS sum_price, COUNT(userid) AS cons
        FROM car
        GROUP BY userid) t
on car.userid=t.userid
where t.cons>=2
order by car.userid

这道题一开始想的太简单了,想着把ID分组后,筛选出记录大于等于2条的id,然后用相应的金额除以总计求和就OK了。

但是执行下来求出的是每个ID的购车金额占全部price字段占比,不满足要求;加上carid之后,发现对ID+carid分组,然后求金额占比都是100%。。。

整体了一下思路,先求了每个ID的总计购车金额,已经拥有车辆数量,将这个表作为临时表。然后和原表内连接,再去限定车辆数量,求一个每个ID的内部购车金额占比。
终于OK了

2、求年累加值,总累加值
建表 CREATE TABLE temp ( DATE DATETIME, VALUE INT );

答案:

select b.year,b.month,
    @year_sum := IF(@year = YEAR, @year_sum + VALUE1, VALUE1) AS YSUM, 
    @year := YEAR,
    @cum_sum := @cum_sum + value1 AS cumsum
from 
(select 
       year(date) as YEAR,
       month(date) as MONTH,
        sum(value) as value1
from temp 
group by year(date),month(date)
)b,(SELECT @YEAR:= 0,@year_sum:= 0,@cum_sum:= 0) a

cumsum为null 不知道哪里有问题。。。
ps:已经订正,赋值要用:=,就可以跑通了

3、列转行
建表 CREATE TABLE st_score ( userid varchar(20) NOT NULL COMMENT '用户ID', subject varchar(20) COMMENT '科目', score int(4) COMMENT '成绩' )

答案:

select userid,
          case when subject = "语文" then score else 0 end as '语文 ',
          case when subject = "数学"  then score else 0 end as '数学 ',
          case when subject = "英语" then score else 0 end as '英语 ',
          case when subject = "政治" then score else 0 end as '政治 '
from st_score

4、行转列
建表 CREATE TABLE st_score1 ( userid VARCHAR ( 20 ) NOT NULL COMMENT '用户id',
cn_score DOUBLE COMMENT '语文成绩', math_score DOUBLE COMMENT '数学成绩', en_score DOUBLE COMMENT '英语成绩', po_score DOUBLE COMMENT '政治成绩' )

答案:

select userid, '语文' COURSE , CN_SCORE as SCORE from st_score1  
union 
select userid, '数学' COURSE, MATH_SCORE as SCORE from st_score1   
union 
select userid, '英语' COURSE, EN_SCORE as SCORE from st_score1   
union
select userid, '政治' COURSE, PO_SCORE as SCORE from st_score1   
order by  course desc,userid

5、计算各院系的男女计数以及合计
建表 CREATE TABLE st ( id VARCHAR(20), NAME VARCHAR(20), gender CHAR(1), birth VARCHAR(20), department VARCHAR(20), address VARCHAR(20) )

答案

select department,
          sum(case  when gender='男' then 1 else 0 end ) as '男',
          sum(case  when gender='女' then 1 else 0 end ) as '女',
          count(*) as '合计'
from st
group by department

Python部分

1、什么是PEP8规范?

PEP(Python Enhancement Proposals) 文档中的第八篇专门针对 Python 的代码格式 给出了建议,也就是俗称的 PEP 8,规定了如缩进、换行、空格、注释等代码格式
https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

2、Python都有那些自带的数据结构?

列表,元组,字典,集合

共同点:都是可迭代对象

不同点:列表,字典是可变的
元组,集合不可变

3、Python中的负索引是什么?

Python中的序列是可以采用负数的索引来访问的,其范围是 -1 到序列的负长度,也就是负索引以序列的结束为起点。
list[2,3,4,5,68,0]
list[-1]=0

4、怎么对列表进行去重操作?
list1=[2,1,2,4,5,6,10,3,3,3,7]

pd.unique(list1)
array([ 2, 1, 4, 5, 6, 10, 3, 7])

5、pandas的axis参数怎么理解?
axis是轴,传入axis参数可以指定在哪个轴上操作,用于获取列表的行和列

  1. axis=0 或者 "index":
    如果是单行操作,就指的是某一行
    如果是聚合操作,指的是跨行cross rows

  2. axis=1 或者"columns"
    如果是单列操作,就指的是某一列
    如果是聚合操作,指的是跨列cross columns

官方解释axes.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,561评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,218评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,162评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,470评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,550评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,806评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,951评论 3 407
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,712评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,166评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,510评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,643评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,306评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,930评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,745评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,983评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,351评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,509评论 2 348