1.1观察以下数字,括号内应该填什么?
1,1,3,7,17,41,(B )
A.89 B.99 C.109 D.119
解析:
从第三项开始,第一项都等于前一项的2倍加上前前一项.2×1+1=3;2×3+1=7;
2×7+3=17; …;2×41+17=99
1.2观察以下数字,括号内应该填什么?
17,24,33,46,( A),92
A.65 B.67 C.69 D.71
解析:
65 理由 相邻两数的差分别是 7 9 13 19 27 他们相邻两数构成等差数列 2 4 6 8
1.3有一个天平,2克和7克砝码各一个.如何利用天平 只用三步 将140g盐分成50g和90g两份
解析:
方法一:
天平一边放7克, 2克砝码,右边放盐,使两边平衡,称了9克盐
把9克盐和7克砝码一专起放在左边,属右边放盐,使两边平衡,又称了16克的盐
把一共称的这25克盐放左边,右边放另外的盐,使两边平衡,然后把所有称出的盐合并,就有50克,剩下的刚好90克
方法二:
140=70+70
70-:2+7=9 =61
61-:9+2=50
数据库部分
2.1count(*)、count(1)、count(column) 的区别
解析:
count()对行的数目进行计算,包含NULL
count(1)还有一种使用方式,count(1)这个用法和count()的结果是一样的。
count(column)对特定的列的值具有的行数进行计算,不包含NULL值。
2.2用代码实现把上边的表转换为下边的表
userid Type Duration_sum
51855025 1 1225
51855025 2 2705
53711033 1 … …
53711033 2 … …
userid Duration_sum_type1 Duration_sum_type2
51855025 1225 2705
53711033 … … … …
解析:
2.3根据如下订单表,请使用sql语法,按购买时间统计出每天的新客户与老客户的人数
订单表
购买时间 用户名
2017-01-01 22:01:23 张三
2017-01-02 14:20:02 张三
2017-01-02 23:13:55 李四
2017-01-02 23:51:20 李四
2017-01-03 23:07:55 李四
名词定义如下:
新客:当天有购买,且之前没有购买的人为新客,新客人数+1;
老客:当天有购买,且之前也有购买的人为老客,老客人数+1;
SQL:
解析:
SELECT t7.trading_times , new_customer_number,(CASE when old_customer_number IS NULL THEN 0 ELSE old_customer_number
FROM
(SELECT DATE_FORWAT(t2.trading_time, "%Y-‰m-%d ) trading_times,cOuNT(t2.customer) new_customer_number
FROM
(SELECT j.~"trading_time” ,j.“customer”
FROw order_journal j
MHERE 1 >(SELECT COUNT(1) FRON order_journal t1 MERE t1. customer’s j.’ customer’AuD t1.'trading_time( j 'trading
GRouP BY trading_times) t7
2.4根据如下1表具有3层关系的类目表,请使用sql语法,将数据展现成下2表形式
Category(层级类目表)
类目id 父类目id 描述
1001 1
1 0 0为根类目
1002 2
1001003 1001
1001004 1001
2 0
1002005 1002
Category(平铺类目表)
三级类目 二级类目 一级类目 根类目
1001003 1001 1 0
1001004 1001 1 0
1002005 1002 1 0
解析:
SELECT
c1.CId AS ’三级类目’,
c1.PCId AS ’二级类目’,
c2.PCId AS ’一级类目’,
c3.PCId AS ’根类目’
FROM
category c1,
category c2,
category c3
WHERE
c1.PCId = c2.CId
AND c2.PCId = c3.CId
2.5 aa bb表都用20个字段,且记录数量都很大,aa,bb,表的x字段(非空)上有索引
请用SQL列出aa表里存在的x在bb表不存在x的值,请写出认为最快的语句.
解析:
Select a.x from aa a where not exists(select 1 from bb b where a.x=b.x)
2.6将表A,表B合并成视图C,请实现SQL
表A:
User_id Name Age Gender Updated
1 张三 24 男 2019/1/2
2 李四 28 女 2020/1/2
1 张三 25 男 2020/1/3
表B:
User_id Type Value updated
3 Name 王五 2019/1/2
3 Age 29 2019/1/2
2 Gender 男 2019/1/2
4 Name 赵六 2019/1/2
4 Age 26 2019/1/2
4 Gender 女 2019/1/2
3 Name 王五 2019/1/3
3 Age 30 2019/1/3
3 Gender 男 2019/1/3
视图C:
User_id Name Age Gender Updated
2 李四 28 女 2020/1/2
1 张三 25 男 2020/1/3
3 王五 30 男 2020/1/3
4 赵六 26 女 2019/1/2
解析:
select from a union select * from b;
或者
select from a union all select * from b;
开发部分
3.1一行代码实现1-100之和
解析:
Print(sum(range(1,101))
3.2从a列表中取出偶数并生成新列表
a=[1,2,3,4,5,6,7,8,9,10]
解析:
sum=[]
for i in a:
if i%2==0:
sum.append(i)
print(sum)
3.3用python删除文件和用linux命令删除文件方法
解析:
Python: linux:
import os 单个删除:rm -rf 文件名
os.remove() 批量删除:rm -rf 文件名关键字