我想使用下面的玩具示例来说明 DISTINCT 的工作原理。假设你有一个像这样的表,有 2 列,只有 2 行数据:
SELECT *
FROM table1;
colA colB
A B
A C
Run Code Online (Sandbox Code Playgroud)
假设我运行了一个 SELECT DISTINCT 查询:
SELECT DISTINCT colA, colB
FROM table1;
Run Code Online (Sandbox Code Playgroud)
上述查询将返回以下哪些结果?
结果可能性1:
A B
A C
Run Code Online (Sandbox Code Playgroud)
这种可能性的想法是,虽然值在 上不colA不同,但当考虑两列时,整个返回的行是唯一的或不同的。我不确定,因为colA和colBin之间的逗号的影响SELECT DISTINCT colA, colB以及它是否用于限制DISTINCTto colA。
结果可能性2:
A B
Run Code Online (Sandbox Code Playgroud)
结果可能性3:
A C
Run Code Online (Sandbox Code Playgroud)
也许这会有所帮助。这个查询:
SELECT DISTINCT colA, colB
FROM table1;
Run Code Online (Sandbox Code Playgroud)
在功能上等同于:
SELECT colA, colB
FROM table1
GROUP BY colA, colB;
Run Code Online (Sandbox Code Playgroud)
它将返回数据中出现的所有colA/对。colB
小智 5
DISTINCT 适用于完整的行。
A B
A C
Run Code Online (Sandbox Code Playgroud)
以上两行不同,所以结果将类似于结果可能性 1,即
A B
A C
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36119 次 |
| 最近记录: |