相关疑难解决方法(0)

GROUP BY和DISTINCT之间有什么区别吗?

前几天我学到了一些关于SQL的简单知识:

SELECT c FROM myTbl GROUP BY C
Run Code Online (Sandbox Code Playgroud)

结果与:

SELECT DISTINCT C FROM myTbl
Run Code Online (Sandbox Code Playgroud)

我很好奇,SQL引擎处理命令的方式有什么不同,还是它们真的是同一个东西?

我个人更喜欢不同的语法,但我相信它更多地出于习惯而不是其他任何东西.

编辑:这不是关于聚合的问题.的使用GROUP BY与聚合函数了解.

sql group-by distinct

291
推荐指数
13
解决办法
21万
查看次数

GROUP BY和DISTINCT有什么区别?

我有以下数据的表格

empid   empname deptid   address
--------------------------------
aa76    John     6       34567
aa75    rob      4       23456
aa71    smith    3       12345
aa74    dave     2       12345
a77     blake    2       12345
aa73    andrew   3       12345
aa90    sam      1       12345
aa72    will     6       34567
aa70    rahul    5       34567
Run Code Online (Sandbox Code Playgroud)

我使用了以下查询:

select deptid, EMPID ,EMPNAME ,ADDRESS
from mytable
group by 1,2,3,4
Run Code Online (Sandbox Code Playgroud)

结果如下:

deptid  empid  empname address
------------------------------
1       aa90   sam      12345
2       aa74   dave     12345
2       aa77   blake    12345
3       aa71   smith    12345
3       aa73   andrew   12345
4 …
Run Code Online (Sandbox Code Playgroud)

sql teradata

4
推荐指数
2
解决办法
1万
查看次数

替代DISTINCT功能

除了使用DISTINCT函数之外,还有没有更好的方法来从一个表的三列中获取所有不同的值?我也尝试过了GROUP BY,但是在成本上似乎没有任何明显的区别。

SELECT DISTINCT Table1.Col1, Table2.Col1, Table1.Col3
FROM Table1 
INNER JOIN Table2 ON Table1.FK = Table2.ID
WHERE Table1.Foo = 1865 AND Table2.Type = 1
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server performance distinct

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

sql ×3

distinct ×2

group-by ×1

performance ×1

sql-server ×1

t-sql ×1

teradata ×1