web-dev-qa-db-ja.com

SQL ServerのDATETIME列のMONTHによるデータのグループ化

テーブルEmployeeがあります。このテーブルには、列ID、日付、名前が含まれています。

参加日はDATETIME列です。

10月に何人のユーザーが参加したか知りたいのですが。

7
Mohan Seth

10月だけを探している場合年に関係なくの場合、その月のレコードをCOUNTだけにするのが簡単な方法です。

SELECT COUNT(*) AS NumberOfJoiners FROM Employee WHERE MONTH(DateOfJoining) = 10;

または

SELECT COUNT(*) AS NumberOfJoiners FROM Employee WHERE DATEPART(MONTH, DateOfJoining) = 10;

年でグループ化する場合は、group by句が必要です。それ以外の場合は、2013年10月、2014年、2015年などが1行にグループ化されます。

SELECT 
  DATEPART(YEAR, DateOfJoining) AS YearOf Joining, 
  COUNT(*) AS NumberOfJoiners 
FROM Employee
WHERE DATEPART(MONTH, DateOfJoining) = 10
GROUP BY DATEPART(YEAR, DateOfJoining);
7
Mark Sinkinson