roc100
roc100
采纳率0%
2017-03-10 05:35

一个sql面试题.求帮忙看看我回答的有什么修改的或错误的地方

图片说明
图片说明
图片说明


第1张表是表结构说明,第2张表是表内容,第3张表也是表结构说明,第4张表是结果表的名字

附加题
若结果采用分布式存储,例如结果存放在192.168.123.124/125上,如何统计每天每个任务提交者所提任务对应结果中标记为1的记录数占当天结果总数的比例


我的回答:

1).
/*得到当日总的任务提交数*/
SELECT COUNT(able_a.id) as 任务提交数 FROM table_a WHERE task_owner LIKE 当天日期;

/*查询到所要收集的任务提交者当日所提交任务数*/
SELECT COUNT(ID)/当天任务总数 FROM table_a GROUP BY task_owner WHERE task_ownerAND task_create_time LIKE 当天日期;

/*若将查询结果保存至新表*/
SELECT (查询语句) INTO 新表;

/*将该任务查询结果导出为TXT格式*/
SELECT * FROM 表,INTO OUTFILE '路径/文件名.txt';

2.)
/*得到当日任务结果数*/
SELECT SUM(任务数) as 总数 FROM table_a WHERE task_create_time LIKE 当天日期;

/*计算得出占当日结果总数*/
SELEC列名,SUM(任务数)/总数*100% FROM table_a GROUP BY task_owner WHERE task_create_time LIKE 当天日期;

/*若将查询结果保存至新表*/
SELECT (查询语句) INTO 新表;

/*将该任务查询结果导出为TXT格式*/
SELECT * FROM 表,INTO OUTFILE '路径/文件名.txt';

3).
/*得到当日结果总数*/
SELECT SUM(任务数) as 总数 FROM table_a WHERE task_create_time LIKE 当天日期;

/*得到当日任务提交人提交结果id*/
SELECT id AS (筛选出的id) FROM table_a GROUP BY task_owner WHERE task_create_time LIKE 当天日期 ADD 任务人;

/*表1表2 id相同->对应结果flag为1占结果总数比*/

SELECT COUNT(ID)/(总数)*100% FROM table_2 WHERE (筛选出的id)=(表2的id) AND FLAG =1;

附加题).
若使用分布式存储查询保存数据,利用链接服务器方式实现数据访问远程服务器数据库

/*访问服务器数据*/
SELECT * FROM 库名{
‘SQLOLDB’,
‘Date Sorece=192.168.123.124/125;User ID=idname;Password=**’
}.库名.dbo.表名
WHERE (...查询语句)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

相关推荐