SQL Distinct关键字

时间:2018-10-18 12:45:33

标签: sql keyword

如果有人可以帮助我对Distinct一词进行分类,我将不胜感激。我正在学习sql并了解它的作用,但它是函数,属性还是关键字,就像SELECT,FROM和WHERE等一样。我猜它是一个关键字,在这种情况下,将两个关键字一起编写是什么意思(即从<< em>关系>中选择DISTINCT << em>属性元组>)?

4 个答案:

答案 0 :(得分:0)

我做了一些搜索,发现它叫做: 条件表达式:DISTINCT 谓词。 不确定是否是您要寻找的东西。

答案 1 :(得分:0)

它是一个关键字,可以在不同的上下文中使用:

Select distinct field1, field2, field3
from myTable;

在这种情况下,返回的数据每个字段1,字段2和字段3列值的每个不同值仅包含1行。即:

field1,field2,field3

1, 2, 3
1, 2, 3
1, 1, 1
1, 2, 1

具有不重复的值会返回:

1, 2, 3
1, 1, 1
1, 2, 1

IOW就像在select中包含的所有字段上进行分组依据一样。

它也可用于这样的聚合:

Select count(distinct productId)
from OrderDetails;

在组中仅对每个productID计数一次(此处示例中未添加任何特殊分组)。例如,上面的查询将回答一个问题,例如到目前为止我们有多少产品有销售?

答案 2 :(得分:0)

它是一个关键字,主要在两个上下文中使用:

  • SELECT DISTINCT
  • COUNT(DISTINCT . . .)

在某些数据库中,还可以使用诸如UNION DISTINCT之类的集合函数。这突出显示了set函数的默认行为(删除重复项)。

从概念上讲,它修改了操作以仅适用于不同的值。

它可以与其他聚合功能一起使用,但是这种用法没有用。它通常意味着数据有问题,通常是数据建模问题。

答案 3 :(得分:0)

在语言中,它是一个关键字,但请注意,从根本上讲,这些语言关键字用于表示运算符(“伪关系”确实更准确)和运算符 的调用是 功能...

因此,有一种情况可以说这既达到了两个目的,又与您要求的区别实际上无关紧要。

示例

SELECT ...:调用“ bag”投影/ SELECT DISTINCT ...:调用“关系”投影。

a与b的区别不大:“关系更紧密”的等价算子(如果a和b均为null则为真)/ WHERE a = b:“关系较小的”等价算子(如果a均为a则为假和b为空)。