数据库的专业英语吧,看看我答的Data 数据 Database 数据库 RDBMS 关系型数据库管理系统(Relational Database Management System) GRANT 授权 REVOKE 权限回收 DENY 拒绝 DECLARE 声明 PROCEDURE程序 Transaction 转换 TRIGGER 触发器 continue 连续 unqiue 唯一 primary key 主键 identity 标识 foreign key 外键
㈡ 求助:一道练习题sql语句怎么写
select a.name,a.score 语文,b.score 化学,c.score 英语 from
(select name,score from student where course='语文' ) a
left join
(select name,score from student where course='化学' ) b
on a.name=b.name
left join
(select name,score from student where course='英语' ) c
on a.name = c.name
㈢ 如下问题的sql语句怎么写
由于手上没有sql环境,我这边直接模拟一下,有错误的地方请指出:
1.每天每个地区播放次数最多的三首歌
selecttop3*from
(
selecta.area,b.songid,convert(varchar(30),b.date,111)as[每天],
sum(b.play_cnt)as[播放次数]
fromuseraleftjoinsongbona.userid=b.userid
groupbya.area,b.songid
)torderby[播放次数]desc
2.留存率
select*from(
selectb.*
fromuseraleftjoinsongbona.userid=b.userid
whereb.date>='2019-5-10:00:00'
andb.date<='2019-5-223:59:59'
)t
whereexists(
selectnullfromsongwheresong.songid=t.songid
and
convert(varchar(30),song.date,111)=
convert(varchar(30),dateadd(d,-1,t.date),111)
)
请试一下,如有疑问,及时沟通!
㈣ 麻烦做一下sql题,直接写出sql就可以了,很简单的。
1.
SELECT *
FROM STUDENT
WHERE SDEPT='信息系' AND SSEX='女' AND SAGE<=21
2.
SELECT SNAME
FROM STUDENT W
WHERE EXISTS(SELECT *
FROM STUDENT
WHERE SNAME='wang' AND W.SNO>SNO AND W.SAGE<SAGE)
3.
SELECT SNAME,SAGE
FROM STUDENT
WHERE SSEX='男'AND SAGE>(SELECT SAGE
FROM STUDENT
WHERE SSEX='女')
4.
SELECT CNAME,COUNT(*)
FROM COURSE JOIN SCG ON COURSE.CNO=SCG.CNO
GROUP BY CNAME
5
SELECT CNO,COUNT(*) 人数
FROM SCG
GROUP BY CNO
HAVING COUNT(*)>10
ORDER BY 2 DESC,1
6
DELETE FROM SCG WHERE SNO=(SELECT SNO FROM STUDENT WHERE SNAME='WANG')
7
INSERT INTO STUDENT VALUES('200200146','王飞','男',20,'信息系')
8
UPDATE SCG SET GRADE=GRADE*1.05
WHERE CNO=3' AND GRADE<=75
9
SELECT *
INTO Student_bak
FROM STUDENT
㈤ java,oracle面试题,如下,sql怎么写
如题我先进行分析:
第一句话中按月找出平均 填写时间大于3天的人员信息 :
那么可用理解为 根据月份查找 员工平均延迟填写日期大于3天的 人员信息。
第二句话一个人员的日志填写日期有多条则取最早的一条,如果有一天未填写,则取系统当前时间,不含小时。
以上这句话需要注意两点 第一点,取最早的一条此处需要用到ROW_NUMBER() OVER() 以及未填写 则取系统当前时间 不含小时 那么取值格式应为yyyy-mm-dd此处需要处理格式。
根据以上分析提供如下SQL: 注:(以下SQL已ORACLE为例)
--创建临时表存储数据
withemp_logas(
select1asempno,'张一'asempname,'工作内容1'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-23'asentrydate,1asnumfromal
unionall
select1asempno,'张一'asempname,'工作内容2'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-23'asentrydate,2asnumfromal
unionall
select1asempno,'张一'asempname,'工作内容3'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-24'asentrydate,5asnumfromal
unionall
select1asempno,'张一'asempname,'工作内容1'asworkcontent,date'2017-03-24'asbegdate,date'2017-03-30'asentrydate,8asnumfromal
unionall
select2asempno,'张二'asempname,'工作内容21'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-30'asentrydate,8asnumfromal
unionall
select2asempno,'张二'asempname,'工作内容22'asworkcontent,date'2017-03-25'asbegdate,date'2017-03-28'asentrydate,8asnumfromal
unionall
select3asempno,'张三'asempname,'工作内容31'asworkcontent,date'2017-03-20'asbegdate,nullasentrydate,nullasnumfromal
unionall
select3asempno,'张三'asempname,'工作内容32'asworkcontent,date'2017-03-20'asbegdate,nullasentrydate,nullasnumfromal
unionall
select4asempno,'张四'asempname,'工作内容42'asworkcontent,date'2017-03-25'asbegdate,date'2017-03-28'asentrydate,8asnumfromal
)
select*from(
selectempno,empname,sum(num)num,sum(yanci)/count(empno)pingjunyanci--获取人员当月总延迟数除去当月人员每日的打开数计算出当月每天的平均延迟天数
from(selectROW_NUMBER()OVER(PARTITIONBYe.empno,e.begdateORDERBYe.empno,e.begdate)ASRN,--排序获取当天有多条记录并在后面条件中获取第一条
e.empno,e.empname,
e.workcontent,e.begdate,
e.entrydate,
e.num,
(nvl(e.entrydate,to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd'))-begdate)asyanci--判断如果没有填写结束日期那么以系统当前日期进行运算延迟日期
fromemp_loge)e1
wheree1.rn=1--获取第一条
andto_char(begdate,'yyyy-mm')='2017-03'--可用的月份条件
groupbyempno,empname,numorderbyempno--根据人员工号、人员姓名分组汇总
)e2wheree2.pingjunyanci>3;
--分析不易忘认真阅读后采纳,有其他问题请追问我。