資料庫的專業英語吧,看看我答的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;
--分析不易忘認真閱讀後採納,有其他問題請追問我。