我有包含以下数据的表格
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
我使用了以下查询:
select deptid, EMPID ,EMPNAME ,ADDRESS
from mytable
group by 1,2,3,4
这给出了结果:
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 aa75 rob 23456
5 aa70 rahul 34567
6 aa76 John 34567
6 aa72 will 34567
对于查询:
select distinct (deptid),EMPID,EMPNAME,ADDRESS
from mytable
结果集是:
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 aa75 rob 23456
5 aa70 rahul 34567
6 aa72 will 34567
6 aa76 John 34567
在第二个查询中,虽然我已经为 DEPTID 提供了
DISTINCT
,但我怎么会得到重复的 DEPTID...你能解释一下吗?
最佳答案
DISTINCT
将不同的记录作为一个整体,而不是记录中的不同字段。
关于sql - GROUP BY 和 DISTINCT 有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1720105/