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