2015-07-11 49 views
0

我有一個名爲Employees的表,它有很多列,但我只想計算此表的某些特定列。如何計算sql中特定列的數量?

即 僱員:001

week1:40

week2:24

譯員更加:24

Week4:39

該僱員(001)具有2周下面32. 如何使用COUNT語句計算在這四周(列)內,多少星期(列)的值低於32?

回答

2

像這樣的東西應該這樣做:

SELECT EmployeeID, 
    (CASE WHEN Week1 < 32 THEN 1 ELSE 0 END + 
    CASE WHEN Week2 < 32 THEN 1 ELSE 0 END + 
    CASE WHEN Week3 < 32 THEN 1 ELSE 0 END + 
    CASE WHEN Week4 < 32 THEN 1 ELSE 0 END) AS Count 
    FROM Employees ... 
+0

看起來純粹的加法應該沒有任何聚合。 –

+0

@MartinSmith不錯,謝謝:) – stuartd

0
SELECT COUNT(*) 
FROM [TableName]; 

可以使用

WHERE聲明SELECT ... FROM ...後指定,如員工與時間低於32

例如條件:

SELECT COUNT(*) 
FROM [TableName] 
WHERE `Hours`<'32'; 

使用AND運營商加入更多條件

SELECT COUNT(*) 
FROM [TableName] 
WHERE `Hours`<'32' AND `EmployeeName`='Todd'; 
-1
SELECT 'MEMBERS(ACTIVE ACCOUNTS)' particular, ''value 
union all 
SELECT +' '+ member_type, 
    (SELECT active_students = (SELECT COUNT(member_type_id) FROM LM_MEMBER_MASTER 
    WHERE institute_code = 'GDAB' AND member_type_id = A.member_type_id AND status = 'Active')) 
FROM LM_MEMBER_TYPE_MASTER A WHERE institute_code = 'GDAB' 
union all 
Select ' Total' particular, COUNT(member_type_id) FROM LM_MEMBER_MASTER 
WHERE institute_code = 'GDAB' AND status = 'Active' 
union all 
SELECT 'MEMBERS(CLOSED ACCOUNTS)' particular, '' value 
union all 
SELECT +' '+member_type, 
    (SELECT active_students = (SELECT COUNT(member_type_id) FROM LM_MEMBER_MASTER 
    WHERE institute_code = 'GDAB' AND member_type_id = A.member_type_id AND status = 'Closed')) 
FROM LM_MEMBER_TYPE_MASTER A WHERE institute_code = 'GDAB' 
union all 
Select ' Total' particular, COUNT(member_type_id) FROM LM_MEMBER_MASTER 
WHERE institute_code = 'GDAB' AND status = 'Closed' 
在此代碼,我不想算「成員(有效帳戶)」和「會員(已關閉的帳戶)」 bcoz其頭條

相關問題