前几天我学到了一些关于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与聚合函数了解.
我有以下数据的表格
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) 除了使用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)