我有以下數據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
我用下面的查詢表:
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
在第二個查詢,雖然我已經給DISTINCT
爲DEPTID,我怎麼就得到了重複DEPTID ...
你能解釋一下嗎?
我想你需要先解釋一下什麼結果你期待? DISTINCT適用於所有列。所以即使deptid相同,第二個查詢也會爲您提供2個唯一的數據行。使用GROUP BY作爲計數或總和等聚合函數。 – Rahul 2009-11-12 05:40:50
對於什麼數據庫? – 2009-11-12 05:41:50
在SELECT子句中按位置引用一列稱爲序數。 IE:'1,2,3,4組' - 不建議在SELECT列發生變化時使用。 – 2009-11-12 05:43:12