我有Emp表,其中包含以下值
Emp_Id Emp_Name Subject Dates
001 Smith Java 07-02-2012
001 Smith oracle 08-02-2012
001 smith C++ 10-02-2012
002 john java 01-01-2012
002 john SE 10-01-2012
002 john c 10-01-2012
001 smith physics 04-01-2012
001 smith c# 07-02-2012
001 smith javascript 07-02-2012
现在我们可以看到,史密斯在2月份只研究了3天,1月份研究了1天 而约翰一月只研究了2天。
我们如何计算任何员工的这个数量? 例如:输出应该是以下方式。
Emp_Id Emp_Name Month_Year No_Of_Days_Studied_In_Month
001 smith Feb12 3
001 smith Jan12 1
002 john Jan12 2
答案 0 :(得分:1)
您可以GROUP BY YEAR(Dates), MONTH(Dates)
并执行COUNT
。
TRY:
SELECT emp_id,
emp_name,
Date_format(DATE, '%b%y') AS dates,
COUNT(*) AS No_Of_Days_Studied_In_Month
FROM emp
GROUP BY Date_format(DATE, '%b%y'), emp_name
ORDER BY emp.emp_id