sqlserver 數據庫面試題目

    今天參加完面試,遇到了一些sql題,現把這些題目一一列出,但願有人看到,若是你在面試過程當中碰巧遇到此類問題,那麼就直接秒殺吧,哈哈。面試

    首先簡歷一個stuscore表。其中name爲姓名,subject爲科目,score爲成績。sql

  create table stuscore(
         name varchar(20),
         subject varchar(20),
         score int
     )

    一、查找出有兩門成績小於60分的學生的全部成績的平均成績函數

    思路:首先求出有兩門成績小於60分的學生姓名,而後在求其平均成績code

  select name,avg(score) from stuscore where name in
    (select name from stuscore where score < 60 group by name having count(*) >= 2)
group by name

    二、查詢每一個學生最大分數的科目及分數數學

    思路:首先獲取每一個學生最大的分數值,而後在鏈接查詢table

select a.name,a.subject,a.score from stuscore a,
    (select name max(score) score from stuscore group by name) b
where a.name = b.name and a.score = b.score

    三、-- 行列轉換class

select name as '姓名',
       max(case subject when '語文'  then score else 0 end) as '語文',
       max(case subject when '數學' then score else 0 end) as '數學',
       max(case subject when '英語' then score else 0 end) as '英語'
from stuscore group by name

    說明:這裏加上max函數的緣由是group by name。具體能夠看下group by的用法以及注意事項select

相關文章
相關標籤/搜索