• sql server 常用高级查询sql


    数据源:表:course
    name kecheng fenshu
    张三 语文 81
    张三 数学 75
    李四 语文 76
    李四 数学 90
    王五 语文 81
    王五 数学 100
    王五 英语 90
    赵六 语文 88
    赵六 数学 89
    赵六 英语 99
    钱起 语文 56
    钱起 数学 89
    钱起 英语 55

    1,选取有三门课程分数大于80分的学生的姓名:
    SELECT name FROM dbo.course WHERE fenshu>80  GROUP BY name HAVING COUNT(fenshu) >=3
    2, 有不及格课程的学生:
    SELECT name, COUNT(fenshu) AS NumberOfCourses FROM dbo.course WHERE fenshu <60 GROUP BY name

    一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
    你先按你自己的想法做一下,看结果有我的这个简单吗?

    答:select a.name, b.name 
    from department a, department 
    where a.name < b.name     --//说明:department 是表,a b是deparment的别名。

    =======================================================================
    把行中的数据,按照一个属性的值,汇总另一个属性成不同的列。实现分段统计


    --===================================

    SQL server中如何实现这样的汇总查询??


    http://zhidao.baidu.com/link?url=X8sIItdCN3GfPJb2GcpldKlO_NF3qe4nJ4Fh8IPbM5G9e4TAoJ4qoVNHGRYeIKUse0__BD3yYE1u7qtB0ELMHa

    select a.城市名称,
    sum(isnull((case when 产品名称='方便面' then 销量 end),0)) 方便面,
    sum(isnull((case when 产品名称='洗发水' then 销量 end),0)) 洗发水,
    sum(isnull((case when 产品名称='矿泉水' then 销量 end),0)) 矿泉水,
    sum(isnull((case when 产品名称='沐浴露' then 销量 end),0)) 沐浴露
    from 城市表 a left join 销售表 b on a.城市名称=b.城市名称
    group by a.城市名称

    -- case 也可以参考:http://www.jb51.net/article/28680.htm

  • 相关阅读:
    闲谈《一》
    GoldenGate系列一:快速搭建单向同步GoldenGate环境
    读取并分析wgetrc文件
    oracle之Flash Recovery Area全面介绍
    使用Subversion进行版本控制 附录A
    使用lstat()判断文件类型
    连接数据库时提示归档器失败 ORA00257: archiver error
    GoldenGate系统三:trouble shooting and log
    关于VMware虚拟机的上网
    使用C语言读取properties文件V1.0
  • 原文地址:https://www.cnblogs.com/netact/p/3672946.html
Copyright © 2020-2023  润新知