精华内容
下载资源
问答
  • 区间统计

    2014-03-31 17:30:00
    今天做东西的使用用到的一个区间统计,记录下来备忘下: 结果如下图: 数据来源:库=>AdventureWorks2008R2,表=>Sales.SalesOrderHeader[订单表],Sales.SalesOrderDetail[订单明细表] 统计订单数量及...

    今天做东西的使用用到的一个区间统计,记录下来备忘下:

    结果如下图:

    数据来源:库=>AdventureWorks2008R2,表=> Sales.SalesOrderHeader[订单表],Sales.SalesOrderDetail[订单明细表]

    统计订单数量及各个区间段的情况。

     ;WITH myCte AS 
     (
     select SalesOrderID,SUM(OrderQty*UnitPrice) amount from Sales.SalesOrderDetail GROUP BY SalesOrderID
     )
    SELECT 条数= COUNT(1),序号,描述,N'占比'=CAST(COUNT(1)*100.0/总记录数 AS DECIMAL(10,4))  FROM  (
    SELECT 序号=1,ToStart=NULL,ToEnd=1000,描述='Bad' UNION ALL 
    SELECT 序号=2,ToStart=1000,ToEnd=3000,描述='Normal' UNION ALL 
    SELECT 序号=3,ToStart=3000,ToEnd=5000,描述='Good'  UNION ALL 
    SELECT 序号=4,ToStart=5000,ToEnd=NULL,描述='Excellent' )  a
      LEFT JOIN myCte b
      ON ((a.ToStart<=b.amount OR a.ToStart IS NULL ) ) AND (a.ToEnd>b.amount OR a.ToEnd IS NULL)
      CROSS JOIN (select 总记录数=COUNT(1) from Sales.SalesOrderHeader) c
      GROUP BY 序号,描述,总记录数

     

    转载于:https://www.cnblogs.com/mfkaudx/p/3636237.html

    展开全文
  • Lintcode 1667 区间统计

    2019-04-25 16:07:42
    1667.区间统计 CAT 专属题目 中文English 给定一个01数组arr和 一个整数k, 统计有多少区间符合如下条件: 区间的两个端点都为 0 (允许区间长度为1) 区间内 1 的个数不多于k 样例 样例 1: 输入: arr = [0, 0, ...

    1667. 区间统计

    CAT 专属题目

    中文English

    给定一个01数组 arr 和 一个整数 k, 统计有多少区间符合如下条件:

    1. 区间的两个端点都为 0 (允许区间长度为1)
    2. 区间内 1 的个数不多于 k

    样例

    样例 1:

    输入: arr = [0, 0, 1, 0, 1, 1, 0], k = 1
    输出: 7
    解释: [0, 0], [1, 1], [3, 3], [6, 6], [0, 1], [0, 3], [1, 3]
    

    样例 2:

    输入: arr = [1, 1, 1, 0, 0, 1], k = 2
    输出: 3
    解释: [3, 3], [4, 4], [3, 4]
    

    注意事项

    arr 的大小不超过 10^5

     

    public class Solution {
        /**
         * @param arr: the 01 array
         * @param k: the limit 
         * @return: the sum of the interval
         */
        public long intervalStatistics(int[] arr, int k) {
            if (arr == null || arr.length == 0) return 0;
            
            int left = 0, right = 0;
            long numOfOne = 0, sum = 0;
    
            while (right < arr.length){
                if (arr[right] == 1){
                    numOfOne++;
                    right++;
                    continue;
                }
                
                if (arr[left] == 1){
                    numOfOne--;
                    left++;
                    continue;
                }
                
                while (numOfOne > k){
                    if (arr[left] == 1){
                        numOfOne--;
                    }
                    left++;
                }
                
                sum += right - left + 1 - numOfOne;
                
                right++;
                
            }
            
            return sum;
        }
    }

     

    展开全文
  • QAQ的区间统计

    2016-10-11 16:19:30
    1012: QAQ的区间统计 时间限制: 1 Sec 内存限制: 128 MB 提交: 151 解决: 48 [提交][状态][讨论版] 题目描述 QAQ有一个区间[L, R]。已知QAQ很喜欢长度为奇数的区间,现在请你告诉他有多少个长度为奇数的子...

    1012: QAQ的区间统计

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 151  解决: 48
    [提交][状态][讨论版]

    题目描述

    QAQ有一个区间[L, R]。已知QAQ很喜欢长度为奇数的区间,现在请你告诉他有多少个长度为奇数的子区间。
    对于区间[2 4]来讲,它的子区间有[2 2] [2 3] [2 4] [3 3] [3 4] [4 4]共6个。
    为了简化题目,QAQ所给的区间里面全是非负整数。

    输入

    第一行输入一个整数T,代表有T组测试数据。
    每组数据输入两个整数L,R,代表区间的端点。

    注:1 <= T <= 1000000,0 <= L <= R <= 100000000。

    输出

    对每组测试数据,输出一个整数代表长度为奇数的子区间个数。

    样例输入

    2
    1 6
    1 5

    样例输出

    12
    9
    <span class="sampledata">举一个区间长度为偶数的例子:</span>
    <span class="sampledata">1 -> 6
    1 1   1 2   1 3   1 4   1 5   1 6        3  
    2 2   2 3   2 4   2 5   2 6              3    6
    3 3   3 4   3 5   3 6                    2
    4 4   4 5   4 6                          2    4
    5 5   5 6                                1
    6 6                                      1    2</span>
    <span class="sampledata">结果为2+4+6;</span>
    12=3*(3+1)
    为奇数时
    1->5
    1 2 3 4 5
    5+3+1=(5+1)/2*(5+1)/2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int main()
    {
        int t;
        long long l,r;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%lld%lld",&l,&r);
            int n=r-l+1;
            long long sum=0;
            long long m=n/2,mm=n%2;
            if(mm==0)
            sum=m*(m+1);
            else
            {
                m=(n+1)/2;
            sum=m*m;
            }
             
            printf("%lld\n",sum);
        }
        return 0;
    }
    /**************************************************************
        Problem: 1012
        User: 311509010108
        Language: C++
        Result: 正确
        Time:748 ms
        Memory:1036 kb
    ****************************************************************/

    展开全文
  • 利用Excel FREQUENCY函数进行按区间统计数值个数.rar,FREQUENCY函数的计算结果非常特别,无论用户指定的参数是一维的数组还是二维的单元格引用,该函数都将返回一个垂直数组。本例“按区间统计数值个数”中示例了一...
  • hihocoder 1553 区间统计

    2017-08-17 10:00:21
    题意#1553 : 区间统计 中文题。题解首先预处理所有幂次的结果,O(NK)O(NK);还有IO时间一定要注意。以下均不讨论。一看题,无修改区间询问,莫队走起。但是用map复杂度太高了,没算错的话应该是 O(n1.5logn+mn√)O(n...

    题意

    #1553 : 区间统计 中文题。

    题解

    首先预处理所有幂次的结果,O(NK);还有IO时间一定要注意。以下均不讨论。

    一看题,无修改区间询问,莫队走起。但是用map复杂度太高了,没算错的话应该是 O(n1.5logn+mn)

    考虑到A[]的范围不大,可以对A[]计数,不过没什么卵用。但是对A[]计数以后可以发现,我们不仅可以对值计数还可以对次数计数,也就是说has[i]表示有多少数在当前询问中的出现次数等于 i 。

    到这里还是比较容易的,但是如果直接扫has[]复杂度并没有降低 O(n1.5+mn) 。。。

    仍然是考虑分治思想,一次询问最多是整个区间,整个区间中出现次数大于 n 的数不会超过 n 个,还可以进行另外的预处理,我就直接 multiset 暴力了。。。复杂度大概是 O(n1.5+mn+(n+m)logn) 。。。(已经不会算了 _(:△」∠)_ )

    代码

    #include <bits/stdc++.h>
    using namespace std;
    
    typedef long long ll;
    const int MO=1000000007;
    const int N=100010;
    const int M=100010;
    int len;
    int po[N][105];
    int cnt[N],has[N];
    int a[N],anss[M];
    multiset<int> ss;
    
    namespace fastIO {
        #define BUF_SIZE 100000
        //fread -> read
        bool IOerror = 0;
        inline char nc() {
            static char buf[BUF_SIZE], *p1 = buf + BUF_SIZE, *pend = buf + BUF_SIZE;
            if(p1 == pend) {
                p1 = buf;
                pend = buf + fread(buf, 1, BUF_SIZE, stdin);
                if(pend == p1) {
                    IOerror = 1;
                    return -1;
                }
            }
            return *p1++;
        }
        inline bool blank(char ch) {
            return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t';
        }
        inline void read(int &x) {
            char ch;
            while(blank(ch = nc()));
            if(IOerror)
                return;
            for(x = ch - '0'; (ch = nc()) >= '0' && ch <= '9'; x = x * 10 + ch - '0');
        }
        #undef BUF_SIZE
    };
    
    struct Query {
        int L, R, k, ID, block;
        Query() {}
        Query(int l, int r, int k, int ID):L(l), R(r), k(k), ID(ID) {
            block = l / len;
        }
        bool operator < (const Query &rhs) const {
            if(block == rhs.block) return R < rhs.R;
            return block < rhs.block;
        }
    } queries[M];
    
    inline void insert(int n)
    {
        --has[cnt[n]];
        if (cnt[n]>len) {
            ss.erase(ss.find(cnt[n]));
        }
        ++cnt[n];
        ++has[cnt[n]];
        if (cnt[n]>len) {
            ss.insert(cnt[n]);
        }
    }
    
    inline void erase(int n)
    {
        --has[cnt[n]];
        if (cnt[n]>len) {
            ss.erase(ss.find(cnt[n]));
        }
        --cnt[n];
        ++has[cnt[n]];
        if (cnt[n]>len) {
            ss.insert(cnt[n]);
        }
    }
    
    int main()
    {
        int T;
        fastIO::read(T);
        for (int i=1;i<=100000;i++) {
            po[i][0]=1;
            for (int j=1;j<=100;j++) {
                po[i][j]=1LL*po[i][j-1]*i%MO;
            }
        }
        while (T--) {
            int n, m;
            fastIO::read(n);
            fastIO::read(m);
            len = sqrt(n);
            for(int i = 1; i <= n; i++) {
                fastIO::read(a[i]);
            }
            for(int i = 1; i <= m; i++) {
                int l,r,k;
                fastIO::read(l);
                fastIO::read(r);
                fastIO::read(k);
                queries[i] = Query(l, r, k, i);
            }
            sort(queries + 1, queries + m + 1);
            int L = 1, R = 1;
            memset(cnt,0,sizeof(cnt));
            memset(has,0,sizeof(has));
            cnt[a[1]]=1;
            has[1]=1;
            ss.clear();
            for(int i = 1; i <= m; i++) {
                Query &qi = queries[i];
                while(R < qi.R) insert(a[++R]);
                while(L > qi.L) insert(a[--L]);
                while(R > qi.R) erase(a[R--]);
                while(L < qi.L) erase(a[L++]);
                ll ans = 0;
                for (int j=1;j<=len;j++) {
                    ans+=1LL*has[j]*po[j][qi.k]%MO;
                    ans%=MO;
                }
                for (int x:ss) {
                    ans+=po[x][qi.k];
                    ans%=MO;
                }
                anss[qi.ID]=ans;
            }
            for(int i = 1; i <= m; i++) {
                printf("%d\n",anss[i]);
            }
        }
        return 0;
    }

    尾巴

    特别鸣谢 Claris!!

    展开全文
  • HPU1012 QAQ的区间统计

    2018-04-12 23:23:07
    1012: QAQ的区间统计 [思维]时间限制: 1 Sec 内存限制: 128 MB提交: 305 解决: 77 统计题目描述QAQ有一个区间[L,R][L,R]。已知QAQ很喜欢长度为奇数的区间,现在请你告诉他有多少个长度为奇数的子区间。对于区间...
  • 在日常生活中,我们经常需要对数据进行统计,其中区间统计(分段统计)又是最常见的一种。比如每次考完试,老师都会统计成绩,看看有多少人不及格,有多少人考 60-80 分,又有多少人考 80 分以上,来分析这次试题的难...
  • Excel的最大功能在于数据的分析与处理,在数据分析和处理中,区间统计是非常广泛的,各位亲是怎么操作的呢?如果还不掌握,且看小编给大家带来的“区间统计”的3种应用技巧。一、Countif函数法。功能:计算指定区域...
  • Excel的最大功能在于数据的分析与处理,在数据分析和处理中,区间统计是非常广泛的,各位亲是怎么操作的呢?如果还不掌握,且看小编给大家带来的“区间统计”的3种应用技巧。一、Countif函数法。功能:计算指定区域...
  • 带权并查集 区间统计

    2018-05-26 11:48:38
    带权并查集区间统计例题:HDU Zjnu Stadium(模板) HDU 3038 How Many Answers Are Wrong与普通并查集不同是新增加一个属性: dist[a]:表示a到父亲节点的距离操作:在路径压缩时,dis[x]+=dis[t]在合并时, dis...
  • 美团 区间统计

    2018-11-01 16:00:11
    小明拿到了一个数列,a1,a2,...an,小明知道存在多少个区间[l,r]同时满足下列两个条件: 1.r-l+1=k; 2.在al ... 到ar中,存在一个数至少出现了t次 输出满足条件的区间个数。   输入:第一行三个整数n,k,t(1&...
  • 自定义区间统计频数

    2020-08-23 16:52:16
    因此决定统计访问时长区间分别为 "[0-5>", "[5-10>", "[10-15>"和"15 or more" (单位:分钟)的会话数量,并以此绘制柱状图。 写一个SQL查询来报告(访问时长区间,会话总数)。结果可用任何顺序呈现。 ...
  • 1.count告诉你一个区间有多少个元素,count_if统计满足判别式的元素个数。2.区间的最大值和最小值分别为max_element和max_element....区间统计处理:可能计算一个区间的数值的乘积;计算一个区间的平均坐标等。...
  • 1012: QAQ的区间统计 时间限制: 1 Sec 内存限制: 128 MB 提交: 162 解决: 53 [提交][状态][讨论版] 题目描述 QAQ有一个区间[L,R] 。已知QAQ很喜欢长度为奇数的区间,现在请你告诉他有多少个长度为奇数的子区间...
  • 点击上方"Excel函数公式"免费订阅 Excel的最大功能在于数据的分析与处理,在数据分析和处理中,区间统计是非常广泛的,各位亲是怎么操作的呢?如果还不掌握,且看小编给大家带来的“区间统计”的3种应用技巧。一、...
  • 区间统计求和

    2017-03-13 19:38:07
    id1 表示 id2 出现的次数 ,现在按以下出现次数统计: (1)0  (2)1-10  (3)11-30  (4)31-50  (5)51-80  (6)81-99  (7)100及以上 使用如下sql select t1.num...
  • 1012: QAQ的区间统计 时间限制: 1 Sec 内存限制: 128 MB 提交: 142 解决: 42 [提交][状态][讨论版] 题目描述 QAQ有一个区间[L, R]。已知QAQ很喜欢长度为奇数的区间,现在请你告诉他有多少个长度为奇数的子...
  • 点击上方"Excel函数公式"免费订阅 Excel的最大功能在于数据的分析与处理,在数据分析和处理中,区间统计是非常广泛的,各位亲是怎么操作的呢?如果还不掌握,且看小编给大家带来的“区间统计”的3种应用技巧。一、...
  • 我们都知道普通并查集可以理解为查看...带权并查集主要分为两类:区间统计类和种类并查集 一.区间统计类 例题.hdu 3038 How Many Answers Are Wrong http://acm.hdu.edu.cn/showproblem.php?pid=3038 题意:...
  • 1012: QAQ的区间统计 时间限制: 1 Sec 内存限制: 128 MB 提交: 155 解决: 50 [提交][状态][讨论版] 题目描述 QAQ有一个区间[L, R]。已知QAQ很喜欢长度为奇数的区间,现在请你告诉他有多少个长度为奇数的子区间。 ...
  • 37_ElasticSearch hitogram按价格区间统计电视销量和销售额更多干货分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业架构...
  • P2879 [USACO07JAN]区间统计Tallest Cow 差分 对于每个限制$(l,r)$,我们建立一个差分数组$a[i]$ 使$a[l+1]--,a[r]++$,表示$(l,r)$区间内的数至少比$l,r$小$1$ 最后统计下前缀和,顺便把最大高度加上去。 记得...
  • mysql区间统计函数

    千次阅读 2018-12-04 17:17:30
    可以配合count函数,统计各个区间的分布情况。比如: mysql > select INTERVAL ( 10 , 0 , 5 , 10 , 15 ) as i , count ( * ) from test group by i ; + ---+----------+ | i | count ( * )...
  • 然后我需要分段统计表t每段时间里面每个区间的频数 如下结果 时间 区间1(0-10) 区间2(10-100) 区间3(100-500) 区间4(500-1000) 区间5(>1000) 0-1 1 2 1 0 0 1-2 0 1 0 1 1 2-3 0 1 0 0 2 因为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,051
精华内容 2,820
关键字:

区间统计