今天面试笔试了一道SQL面试题,狠简单
2010-12-31 13:25
471 查看
有表Test
CREATE TABLE test
(
date datetime ,
type1 VARCHAR(2) ,
type2 VARCHAR(2) ,
account1 INT ,
account2 INT
)
-----------------------------------
date type1 type2 account1 account2
2010-02-21 A1 B1 12 14
2010-02-21 A1 B2 12 19
2010-02-21 A1 B1 14 19
2010-02-21 A2 B3 15 12
2010-02-21 A2 B1 17 14
2010-02-21 A3 B2 18 14
2010-02-21 A2 B1 12 11
一条语句查询出
--------------------------------------
date type account1 account2
2010-02-21 A1 38 0
2010-02-21 A2 44 0
2010-02-21 A3 18 0
2010-02-21 B1 0 58
2010-02-21 B2 0 33
2010-02-21 B3 0 12
-----------------------------------------
/*
INSERT INTO test
SELECT '2010-02-21','A1','B1',12,14
UNION
SELECT '2010-02-21','A1','B2',12,19
UNION
SELECT '2010-02-21','A1','B1',14,19
UNION
SELECT '2010-02-21','A2','B3',15,12
UNION
SELECT '2010-02-21','A2','B1',17,14
UNION
SELECT '2010-02-21','A3','B2',18,14
UNION
SELECT '2010-02-21','A2','B1',12,11
SELECT * FROM test
*/
SELECT date,[type1] AS 'type',SUM(account1) AS 'account1',0 AS 'account2' FROM test
GROUP BY date,[type1]
union
SELECT date,[type2],0 ,SUM(account2) FROM test
GROUP BY date,[type2]
CREATE TABLE test
(
date datetime ,
type1 VARCHAR(2) ,
type2 VARCHAR(2) ,
account1 INT ,
account2 INT
)
-----------------------------------
date type1 type2 account1 account2
2010-02-21 A1 B1 12 14
2010-02-21 A1 B2 12 19
2010-02-21 A1 B1 14 19
2010-02-21 A2 B3 15 12
2010-02-21 A2 B1 17 14
2010-02-21 A3 B2 18 14
2010-02-21 A2 B1 12 11
一条语句查询出
--------------------------------------
date type account1 account2
2010-02-21 A1 38 0
2010-02-21 A2 44 0
2010-02-21 A3 18 0
2010-02-21 B1 0 58
2010-02-21 B2 0 33
2010-02-21 B3 0 12
-----------------------------------------
/*
INSERT INTO test
SELECT '2010-02-21','A1','B1',12,14
UNION
SELECT '2010-02-21','A1','B2',12,19
UNION
SELECT '2010-02-21','A1','B1',14,19
UNION
SELECT '2010-02-21','A2','B3',15,12
UNION
SELECT '2010-02-21','A2','B1',17,14
UNION
SELECT '2010-02-21','A3','B2',18,14
UNION
SELECT '2010-02-21','A2','B1',12,11
SELECT * FROM test
*/
SELECT date,[type1] AS 'type',SUM(account1) AS 'account1',0 AS 'account2' FROM test
GROUP BY date,[type1]
union
SELECT date,[type2],0 ,SUM(account2) FROM test
GROUP BY date,[type2]
相关文章推荐
- 一道简单的SQL面试题:查询成绩排名第10到第20的学生
- 今天没做起的一道SQL面试题
- 【笔试/面试】SQL 经典面试题
- 记一道巨简单,但是我没有答上来的Sql面试题
- 最近面试,笔试题中的一道sql题
- 一个简单的今天面试的sql题,做个记录
- 一道看似简单的sql面试题(count,group by,distinct)
- 【C面试】一道简单的C语言面试题的思考——打印星阵
- 一道易错的SQL面试题
- [面试] 各大IT公司校园招聘程序猿笔试、面试题集锦
- 今天工作中遇到的一个看似简单的SQL题
- 一道SQL语句面试题,关于group by
- 一道SQL的面试题之联想
- 一道sql面试题:translate()函数的应用
- 杨辉三角与一道经典笔试面试题目
- java参数传递一道简单面试题
- 一道sql面试题的解答
- 一道 SQL 面试题
- 一些看起来简单做起来难的程序员笔试面试题集锦
- 一道面试题引发的数据库SQL语句实践(含行列转换)