zoukankan      html  css  js  c++  java
  • sql 常见面试题

      经常会看到这样的SQL面试题,请用一条SQL语句统计出学生的总总成绩,请用一条sql语句删除表中重复的内容,但第一条保留。最近得闲,就试着写了这么个demo,今天来这和大家分享下,如果大家有其他的sql题也可以拿出来大家一起讨论,一起分享。

         先创建一个表:

    CREATE TABLE [dbo].[Score](
    [ID] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
    [Name] [nvarchar](50) NULL,
    [CID] [int] NULL,
    [Score] [int] NULL

    然后插入些测试数据:

    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('张三',1,60)
    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('张三',2,70)
    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('张三',3,80)
    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('张三',4,90)

    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('李四',1,60)
    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('李四',2,70)
    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('李四',3,80)
    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('李四',4,90)

    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('王五',1,60)
    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('王五',2,70)
    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('王五',3,80)
    INSERT INTO [Test].[dbo].[Score]([Name],[CID],[Score])VALUES('王五',4,90)

    好了,准备工作做完了,下面我们来写两条Sql语句,解决开始提出的那两个问题

    A、统计学生的成绩

    select name,SUM(Score)Score from Score group by Name

    B、删除表中重复的记录,因为这表中的name是有重复的,所以我们就直接用这表来test

    delete from Score where Name in 
    (select Name from Score group by Name having COUNT(name)>0)and ID 
     not in (select MIN(id) from Score group by Name having COUNT(Name)>0)
    好了,两条语句解决了两个问题.
  • 相关阅读:
    一个故事讲透供应链的三大战略
    电商系统之订单正向与逆向流程设计
    广告深度预估技术在美团到店场景下的突破与畅想
    美团智能客服核心技术与实践
    供应链里的批次管理,你了解多少
    对于HTML语义化的理解
    前端三大框架中Vue与React区别
    对于mvc模式的理解与学习
    对于javascript里面闭包的理解
    webpack的理解与使用
  • 原文地址:https://www.cnblogs.com/_fyz/p/2032439.html
Copyright © 2011-2022 走看看