SQL

2010-06-21 17 views
5

veritabanı/SQL acemi alanındaki alan değeri başına listelenen satır sayısı.SQL

"EmployeeID" gibi bir sütun içeren bir tablom var. Her bir farklı çalışan kimliği için kimliğine sahip olan satır sayısını döndürecek bir sorgu istiyorum. Umarım ne yapmaya çalıştığımı açıklar ve birileri nasıl yardım edeceğini bilir!

Ben hiç önemli gerektiğini sanmıyorum, ama sadece durumda, ben bu hile yapmak gerekir MS SQL Server 2008.

+0

cevap baktığımızda, birçok insan DISTINCT kullanır. Bu durumda kullanmanın bir avantajı var mı? Daha hızlı mı? –

+0

@David Sorgunun semantik değeri, çalışan başına yalnızca 1 satırın döndürüleceği anlamına gelmediğinden, yalnızca bir cevap 'DISTINCT' kullanılmasını gerektirmez. –

+0

DISTINCT'in ne anlama geldiğini biliyorum. Benim amacım şuydu: Talep edilmediğinde bir DISTINCT kullanmak için işe yaramaz bir hesaplama üretmeyecek. Yorum yaptığımda, DISINCT ile 3 cevap olmasaydı 2 tane vardı. Bazıları modifiye edilmiş gibi görünüyor. –

cevap

12

Basit SQL

select EmployeeId,count(*) 
from YourTable 
Group by EmployeeId 
+1

Mükemmel! "Grup" anahtar kelimesini bilmiyordum. Yardım için teşekkürler. –

+0

pure code Teşekkürler – ROR

+0

@ josephj1989 alanların geri kalanını göstermeye ne dersiniz? Örn. *, Çalışan, sayım (*) , YourTable Grubundan Çalışıyor –

2

kullanıyorum:

SELECT employeeID, COUNT(employeeID) FROM Employees GROUP BY employeeID 
4

Kullanım:

SELECT t.employeeid, 
     COUNT(*) AS num_instances 
    FROM TABLE t 
GROUP BY t.employeeid 

C OUNT, GROUP BY cümlesi kullanılmasını gerektiren bir toplu işlevdir.

2
select count(*) AS RowCount, EmployeeID 
FROM table 
GROUP BY EmployeeID 
-1
SELECT DISTINCT employeeID, 
COUNT(employeeID) AS [Count] 
FROM Employees 
GROUP BY employeeID 
+0

Değere göre gruplandırırken DISTINCT gerekmez. –