当前位置: 首页 > 知识库问答 >
问题:

SQL计数和distinct以及分区

白成济
2023-03-14

我尝试了一些具有分析功能的示例,并创建了一个sql fiddle来理解分区上的count distinct by Clause,这就是我的SQLFiddle。

create table dummy (value1 varchar2(10),value2 varchar2(10));

insert into dummy values ('abc','abc1');
insert into dummy values ('abc','abc1');
insert into dummy values ('abc','abc2');
insert into dummy values ('def','abc1');
insert into dummy values ('ghi','abc2');
insert into dummy values ('xyz','abc3');
insert into dummy values ('xyz','abc3');

select value1,
       value2,
       count(distinct value2) over (partition by value1) as ValCount
from dummy

如果查看结果集,我会认为第三行的valcount为1,但它是2,不确定为什么会这样。

共有1个答案

郦翰学
2023-03-14

abc(value1)在第二列(abc1和abc2)上只有2个不同的值,并且由于您计算了在列1上分区的column2上的不同值,因此实际上应该得到2

 类似资料:
  • 主要内容:语法,示例SQL DISTINCT 关键字需要和 SELECT 语句一起使用,用来删除结果集中所有重复的记录,仅保留唯一的一条记录。 数据表中有时候会有重复的记录,如果您只需要其中一条,就可以使用 DISTINCT 关键字。 关于 UNIQUE 关键字 UNIQUE 和 DISTINCT 的效果是等价的,都用来消除结果集中的重复记录,但是 UNIQUE 是一种老式的语法,Oracle 数据库曾经使用过。 后

  • 问题内容: 好的,因此基本上我通过使用变得无用,我需要避免这种情况,因为这会导致重复的结果(当然,除了唯一的数字!) 因此,我要寻找的是一个查询,该查询将保持相​​同,但没有重复的行,因为num是唯一的: 修复起来可能很琐碎,但由于我不是SQL Server专家,所以我不习惯这些内部查询等。 更新:是的,num用于分页。 问题答案: 好像我晚两年我最近的博客帖子大约是到什么是对。您的CTE必须替换

  • 1. 定义 维基百科:关键字Distinct用于返回唯一不同的值。 慕课解释:有时候,查询结果中会包含重复的信息,如年龄,很多人是同龄人,而我们只需要不同年龄的数据,加上 Distinct 关键字我们就可以获得不重复的数据。 2. 前言 本小节,我们将一起学习 SQL Distinct。 Distinct 关键字既可以用来修饰单字段,也可以用来修饰多字段;在小节中,我们将分别介绍这两种情况的使用。

  • 问题内容: 我正在尝试转换此查询(已经可以使用) 对于Linq to SQL,但我不知道自己在做什么错。看我的尝试 我只需要对建筑物进行分组并计算每个建筑物有多少用户。 问题答案: 只需使用以下方法:

  • 问题内容: 我有一个类似于此的MySQL-db表: 我想查找每个日期每个班级有多少人,所以我得到以下结果: 如何使用SQL做到这一点?我想我需要计算,分组,也许还需要一些加入,但是我不知道该怎么做。 问题答案: 您可以使用条件聚合: 这在MySQL中使用了一种简写形式,该形式将布尔表达式视为整数。以上每个都等同于。

  • 问题内容: 我有一个这样的表结构: 通过智能查询,我想获取3列: 我在的此解决方案的帮助下提出了我的查询,该查询为我提供了我需要的前两列: 但是,如何将第三列也添加到查询中? 你能帮我么? 问题答案: 正如您自己提到的那样,您可以使用关键字来获取与众不同的。使用获得的计数和获得不同的每个小号 试试这个: 输出: