zoukankan      html  css  js  c++  java
  • Sql学习第九天——SQL 关于over

    Sql学习第九天——SQL 关于over

    Sql学习第九天——SQL 关于over

    以前总是认为over是与row_number()结合使用的,今天突然发现它还可以与count()结合。现在就来看看它是怎样与over结合的吧!

    还是从例子中理解它:

    建表([dbo].[Orders]  字段说明:orderid -- 订单id  , customerid -- 消费者id):

    复制代码
    CREATE TABLE [dbo].[Orders](
        [orderid] [int] NOT NULL,
        [customerid] [char](5) COLLATE Chinese_PRC_CI_AS NULL,
    PRIMARY KEY CLUSTERED 
    (
        [orderid] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    复制代码

    向表插入数据:

    复制代码
    insert into dbo.Orders values(1,'FRNDO');
    insert into dbo.Orders values(2,'FRNDO');
    insert into dbo.Orders values(3,'KRLOS');
    insert into dbo.Orders values(4,'KRLOS');
    insert into dbo.Orders values(5,'KRLOS');
    insert into dbo.Orders values(6,'MRPHS');
    insert into dbo.Orders values(7,null);
    复制代码

    查询插入的数据:

    select * from dbo.orders

    结果如图:

    直接上三条sql语句比较进行对比说明,这样比较明了。

    sql语句一(简单的查询所有的数据):

    select * from dbo.Orders

    sql语句二(用到了count与over的结合):

    select orderid , customerid,count(*) over(partition by customerid) as num_orders
    from orders

    sql语句三(用到了count与over的结合并且带上了条件):

    select orderid , customerid,count(*) over(partition by customerid) as num_orders
    from orders
    where customerid is not null and orderid%2 = 1

    结果分析图:

    看完图可能都会明白是怎么一回事儿了,对于partition by 我前面有说(查看请点次链接)。

  • 相关阅读:
    任务调度之Quartz.Net配置文件
    任务调度之Quartz.Net可视化界面
    任务调度之Quartz.Net基础
    Asp.Net Core中完成拒绝访问功能
    Asp.Net Core Identity中基于角色授权
    Javascript 继承 图形化展示
    Try,Catch,Finally三块中如果有Return是怎么个运行顺序
    Autofac 一个使用Demo
    Autofac
    WCF代理是怎么工作的?用代码说话
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3093841.html
Copyright © 2011-2022 走看看