【问题标题】:SQL Distinct keywordSQL Distinct 关键字
【发布时间】:2018-10-18 12:45:33
【问题描述】:

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

【问题讨论】:

  • 我认为您将标识符等分类从一种语言风格应用到另一种语言风格。这通常不起作用。在 SQL 中,这大部分只是“这就是语法”(例如,考虑 inner joinleft outer join:两者都做一件事,但使用多个词)。
  • 确实,我试图从一开始就对 sql 使用的保留关键字进行分类。因此,我打算稍后特别查看相当复杂、冗长和组合的查询,并将其分解为子部分并更好地理解它。就像人们可以通过了解特定的词性来处理英语句子一样。

标签: sql keyword


【解决方案1】:

我做了一些搜索,发现它被称为: 条件表达式:DISTINCT 谓词。 不知道是不是你要找的。​​p>

【讨论】:

  • 我想这就是我想要的。现在可以谷歌搜索其他条件表达式或谓词。谢谢
【解决方案2】:

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

Select distinct field1, field2, field3
from myTable;

在此上下文中,对于 field1、field2 和 field3 列值的每个不同值,返回的数据只有 1 行。即:

字段1,字段2,字段3

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

with distinct 会返回:

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

IOW 就像对 select 中包含的所有字段进行分组。

它也与这样的聚合一起使用:

Select count(distinct productId)
from OrderDetails;

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

【讨论】:

    【解决方案3】:

    它是一个关键字,主要用于两种情况:

    • SELECT DISTINCT
    • COUNT(DISTINCT . . .)

    在某些数据库中,也允许使用 set-functions,例如UNION DISTINCT。这突出了 set-function 的默认行为(删除重复项)。

    从概念上讲,它会将操作修改为仅对不同的值起作用。

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

    【讨论】:

      【解决方案4】:

      在语言中它是一个关键字,但请注意,在核心,这些语言关键字用于表示运算符的调用(“关系”运算符,虽然伪关系实际上更准确)和运算符 函数...

      所以有一点可以说它有两个目的,而且你问的区别实际上是无关紧要的。

      例子

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

      WHERE a IS NOT DISTINCT FROM b :“更相关”的相等运算符(如果 a 和 b 都为 null,则产生 true )/ WHERE a = b :“不太相关”的相等运算符(如果两者 a 则产生 false和 b 为空)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多