精华内容
下载资源
问答
  • 今天,在使用LISTAGG()函数连接不同角色所有人员的完整名称时,发现LISTAGG()函数本身并不提供去重的功能(相同的人名,在结果中会重复显示)。问问度娘,没有找到好用的解决方法。然后使用Yahoo英文版(Google要是...
    今天,在使用LISTAGG()函数连接不同角色所有人员的完整名称时,发现LISTAGG()函数本身并不提供去重的功能(相同的人名,在结果中会重复显示)。
    问问度娘,没有找到好用的解决方法。然后使用Yahoo英文版(Google要是能用或许就没有Yahoo什么事了),搜索到了Stackoverflow上的一篇文章,受到启发,然后使用嵌套一层子查询的方法实现了去重后的连接。

    本来想贴上原文链接,结果找了半天没找到,算了,自己写一段sample吧。
    SELECT *
      FROM IKB
     WHERE TYPE = 'iCompany-I Skill set'

    执行结果:


    现要求将相同sub-type的值串联显示,而En列中存在重复值,如果直接使用listagg(),串联后的结果中也将包括重复值。
    SELECT DISTINCT
           TYPE,
           SUBTYPE,
           LISTAGG (EN, ' | ')
              WITHIN GROUP (ORDER BY EN)
              OVER (PARTITION BY TYPE, SUBTYPE) AS SKILLS
      FROM IKB
     WHERE SUBTYPE IN ('Technology_Database', 'test')

    执行结果:


    解决方法:先在子查询中完成去重操作,再在外层查询中使用LISTAGG()函数。
    修改后的query如下:
    SELECT DISTINCT
           TYPE,
           SUBTYPE,
           LISTAGG (EN, ' | ')
              WITHIN GROUP (ORDER BY EN)
              OVER (PARTITION BY TYPE, SUBTYPE)
              AS SKILLS
      FROM (SELECT DISTINCT TYPE, SUBTYPE, EN
              FROM IKB
             WHERE SUBTYPE IN ('Technology_Database', 'test'))

    执行结果:

    任务完成!cheers!

    展开全文
  • 今天教大家几个函数函数组实现这个需求。我的版本是 Excel 2016,其他版本的界面可能略有不同。需求:1. 如何去除下拉菜单中的空值?2. 如何去除不连续空值?3. 如何在上述基础上去重?案例:先看一下普通...

    制作下拉菜单大家都不陌生,但是要自动去除下拉菜单中的空值,甚至要去重,你知道怎么做吗?

    今天教大家用几个函数和函数组实现这个需求。

    我用的版本是 Excel 2016,其他版本的界面可能略有不同。

    需求:

    1. 如何去除下拉菜单中的空值?

    2. 如何去除不连续空值?

    3. 如何在上述基础上去重?

    案例:

    先看一下用普通方法制作的下拉菜单会呈现什么效果。

    1. 用 B 的数据源在 A 列制作下拉菜单,其中标黄的为空值

    c1d1c0976ab1726ea793ca62ce3a5a5a.png

    2. 下拉菜单中包含上下空行

    d323b9480ff02382ab027f32217a6d8e.png

    解决方案1 – 去除向下连续空值:

    1. 在 Source 中输入公式:=OFFSET($B$2,,,SUMPRODUCT(N(LEN($B:$B)>0)),)

    689be482b1c5437d2106f686405bb9b6.png
    c796ef824c11ce6d40d0eeff38983920.png

    这次用到了一个新函数 OFFSET,我们分解开来翻译一下:

    SUMPRODUCT(N(LEN($B:$B)>0)):

    • 统计 B 列中非空值的个数

    * SUMPRODUCT 函数被誉为函数中的神器,关于其部分用法,可以参考 Excel函数(四) – sumproduct函数计数、排名、求和等等

    OFFSET (基准位置,向下或上偏移几行,向右或左偏移几列,引用区域的高度,引用区域的宽度)

    • 本例中我们只使用了“基准位置”和“引用区域的高度”两个参数,即引用 B 列中非空值

    * 请注意:

    1) 这个方法不能去除数据列上方的空值,所以我们必须从有值的行开始读,本例中是 $B$2

    2) 这个方法只能去除向下的连续空值,如果有隔行的空值,也无法处理。所以我们需要方案 2

    83d3cfce3b8574986e6209d90fa20b4a.png
    e4a0046105946299a6a34e0056cc2576.png

    解决方案2 – 去除不连续的空值:

    万能数组公式 index + small + if + row 终于闪亮登场!

    1. 增加辅助列 C,在 C1 中输入公式:=INDEX(B:B,SMALL(IF($B:$B<>

    展开全文
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    如何实现快速定位(筛选出不重复值) 如何请在N列中列出A1:L9中每列都存在的数值 自动为性别编号的问题 【文本与页面设置】 EXCEL中如何删除*号 将字符串中的星号“*”替换为其它字符 去空格函数如何去掉字符和单元...
  • 如何实现快速定位(筛选出不重复值) 如何请在N列中列出A1:L9中每列都存在的数值 自动为性别编号的问题 【文本与页面设置】 EXCEL中如何删除*号 将字符串中的星号“*”替换为其它字符 去空格函数如何去掉字符和单元...
  • 第四章课后题-洗牌器

    2018-07-19 18:50:12
    在写之前我就只想到一个random函数(rank),毫无头绪,不知道如何去除重复的random,左思右想,想到了桶排序,如果我们把random的结果标记出来,使他不能重复出现,不就可以解决这个问题了吗,接下来程序非常简单...

    写完运行这一刻,真的好开森;
    天哪噜,我用的什么结尾,分号?我大概是个入门的程序员了
    好吧,让我们来走进我们今天的这个洗牌器;
    在写之前我就只想到一个random函数(rank),毫无头绪,不知道如何去除重复的random值,左思右想,想到了桶排序,如果我们把random的结果标记出来,使他不能重复出现,不就可以解决这个问题了吗,接下来程序非常简单,不要闭上眼睛。

    此处因为桶排序,所以要把数据放到一个数组中,我借用了txt文本功能,进行替换,(感觉好强大这个功能);

    
    package cc.openhome;
    import java.util.Random;
    public class Test {
        public static void main(String[] args) {
          String[] number={"梅A","梅2","梅3","梅4","梅5","梅6","梅7","梅8","梅9","梅10","梅J","梅Q","梅K",
          "桃A","桃2","桃3","桃4","桃5","桃6","桃7","桃8","桃9","桃10","桃J","桃Q","桃K",
        "砖A","砖2","砖3","砖4","砖5","砖6","砖7","砖8","砖9","砖10","砖J","砖Q","砖K",
       "心A","心2","心3","心4","心5","心6","心7","心8","心9","心10","心J","心Q","心K"};
        int[] book=new int[number.length];
        int bok=0;
        Random random = new Random();
        for(int i=0;i<number.length;i++)
        {
            do{
                bok=random.nextInt(52);//(表示从0-51)之间生成一个数
                if(i==number.length-1) break;
            }while(book[bok]==1);
            book[bok]=1;
            System.out.printf("%s ",number[bok]);
            if((i+1)%13==0)
            {
                System.out.println();
            }
    
        }
    
        }
    
    }
    
    展开全文
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此...
  • 2.去除重复元素 3.访问集合中的 4.不可变集合 1.集合 如何创建一个集合: 1.一种是直接把一堆元素花括号括起来 2.一种是使用set()工厂函数 >>> num = {} >>> type(num) <class 'dict'...

    0.目录

    1.什么是集合?
    2.去除重复元素
    3.访问集合中的值
    4.不可变集合

    1.集合

    • 如何创建一个集合:
      1.一种是直接把一堆元素用花括号括起来
      2.一种是使用set()工厂函数
    >>> num = {}
    >>> type(num)
    <class 'dict'>
    >>> num = {1,2,3,4,5}#集合
    >>> type(num)
    <class 'set'>
    这里我们可以看出,({})花括号不是字典的专属
    
    >>> set1 = set([1,2,3,4,5,6,5])
    >>> set1
    {1, 2, 3, 4, 5, 6}
    
    >>> num2 = {1,2,3,4,5,6,4,2,1}
    >>> num2
    {1, 2, 3, 4, 5, 6}
    集合会自动筛选去除重复元素
    
    集合中的元素没有位置,不能通过索引获取
    >>> num[2]
    Traceback (most recent call last):
      File "<pyshell#104>", line 1, in <module>
        num[2]
    TypeError: 'set' object is not subscriptable
    

    2.去除序列中的重复元素

    正常写法
    >>> num1 = [1,2,3,4,5,4,2,1,0]
    >>> temp = []
    >>> for each in num1:
    	if each not in temp:
    		temp.append(each)
    
    		
    >>> temp
    [1, 2, 3, 4, 5, 0]
    集合写法
    >>> num1 = list(set(num1))
    >>> num1
    [0, 1, 2, 3, 4, 5]
    

    3.如何访问集合中的值

    • 可以通过 in 和 not in 判断一个元素是否在集合已经存在
    • 可以用 for 把集合中的元素一个个读取出来
    >>> num1
    [0, 1, 2, 3, 4, 5]
    >>> num2
    {1, 2, 3, 4, 5}
    >>> 1 in num1
    True
    >>> 1 in num2
    True
    >>> '1' in num2
    False
    >>> num2.add(6)
    >>> num2
    {1, 2, 3, 4, 5, 6}
    >>> num2.remove(5)
    >>> num2
    {1, 2, 3, 4, 6}
    

    4.不可变集合

    frozen:冰冻的,冻结的

    >>> num3 = frozenset([1,2,3,4,5,6])
    >>> num3,add(0)
    #报错 
    #不可变函数不可进行任何操作
    Traceback (most recent call last):
      File "<pyshell#94>", line 1, in <module>
        num3,add(0)
    NameError: name 'add' is not defined
    
    展开全文
  • 通过目录查找第一天HTML1、link与@uimport的区别2、HTML包含的元素CSS1、圣杯布局和双飞翼布局的理解和区别2、css新增特性JS1、递归算法实现,数组长度为5且元素的随机数在2-32间不重复2、去除字符串中最后一...
  • 目录一、了解数据二、清洗数据去除不需要的行、列重新命名列重新设置索引字符串操作规范列用函数规范列删除重复数据填充缺失三、总结【注】为了清晰直观地展示数据清洗操作,本文会用到几个不同的数据集,重点是...
  • 目录一、了解数据二、清洗数据去除不需要的行、列重新命名列重新设置索引字符串操作规范列用函数规范列删除重复数据填充缺失三、总结【注】为了清晰直观地展示数据清洗操作,本文会用到几个不同的数据集,重点是...
  • 我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此...
  • 25、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 75 26、HashMap与HashTable的区别 75 27、Java中有多少种数据结构,分别是什么? 76 28、Arraylist 和Linkedlist...
  • 12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 转换控制字符 122 12.1.9 快速转换 122 12.1.10 匹配多于一个字符 123 12.2 小结...
  • Linux shell编程指南

    2015-05-29 22:40:12
    12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 转换控制字符 122 12.1.9 快速转换 122 12.1.10 匹配多于一个字符 123 12.2 小结...
  • 12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 转换控制字符 122 12.1.9 快速转换 122 12.1.10 匹配多于一个字符 123 12.2 小结...
  • shell编程和unix命令

    2015-02-16 15:41:39
    1.6.1 为什么要使用suid/guid 8 1.6.2 设置suid/guid的例子 8 1.7 chown和chgrp 9 1.7.1 chown举例 9 1.7.2 chgrp举例 9 1.7.3 找出你所属于的用户组 9 1.7.4 找出其他用户所属于的组 10 1.8 umask ...
  • 12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 转换控制字符 122 12.1.9 快速转换 122 12.1.10 匹配多于一个字符 123 ...
  • 12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 转换控制字符 122 12.1.9 快速转换 122 12.1.10 匹配多于一个字符 123 12.2 小结...
  • LINUX与UNIX Shell编程指南.pdf

    热门讨论 2010-10-23 00:49:00
    12.1.3 去除重复出现的字符 120 12.1.4 删除空行 120 12.1.5 大写到小写 121 12.1.6 小写到大写 121 12.1.7 删除指定字符 121 12.1.8 转换控制字符 122 12.1.9 快速转换 122 12.1.10 匹配多于一个字符 123 12.2 小结...

空空如也

空空如也

1 2 3 4 5
收藏数 91
精华内容 36
关键字:

去除重复值用什么函数