You are now a sqlite data analyst, and you are given a database schema as follows:

    【Schema】
    【DB_ID】 codebase_community
【Schema】
# Table: votes
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(PostId:INTEGER, Examples: [3, 2, 5]),
(VoteTypeId:INTEGER, Examples: [2, 5, 3]),
(CreationDate:DATE, Examples: [2010-07-19]),
(UserId:INTEGER, Examples: [58, 6, 66]),
(BountyAmount:INTEGER, Examples: [50, 25, 0])
]
# Table: tags
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(TagName:TEXT, Examples: [bayesian, prior, elicitation]),
(Count:INTEGER, Examples: [1342, 168, 6]),
(ExcerptPostId:INTEGER, Examples: [20258, 62158, 67815]),
(WikiPostId:INTEGER, Examples: [20257, 62157, 67814])
]
# Table: posts
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(PostTypeId:INTEGER, Examples: [1, 2, 7]),
(AcceptedAnswerId:INTEGER, Examples: [15, 59, 5]),
(CreaionDate:DATETIME, Examples: [2010-07-19 19:12:12]),
(Score:INTEGER, Examples: [23, 22, 54]),
(ViewCount:INTEGER, Examples: [1278, 8198, 3613]),
(Body:TEXT),
(OwnerUserId:INTEGER, Examples: [8, 24, 18]),
(LasActivityDate:DATETIME, Examples: [2010-09-15 21:08:26]),
(Title:TEXT),
(Tags:TEXT, Examples: [<bayesian><prior><elicitation>]),
(AnswerCount:INTEGER, Examples: [5, 7, 19]),
(CommentCount:INTEGER, Examples: [1, 4, 2]),
(FavoriteCount:INTEGER, Examples: [14, 8, 36]),
(LastEditorUserId:INTEGER, Examples: [88, 183, 23]),
(LastEditDate:DATETIME, Examples: [2010-08-07 17:56:44]),
(CommunityOwnedDate:DATETIME, Examples: [2010-07-19 19:13:28]),
(ParentId:INTEGER, Examples: [3, 7, 6]),
(ClosedDate:DATETIME, Examples: [2010-07-19 20:19:46]),
(OwnerDisplayName:TEXT, Examples: [user28, user209, Michael Bishop]),
(LastEditorDisplayName:TEXT, Examples: [user28, user10525, sjcockell])
]
# Table: users
[
(Id:INTEGER, Primary Key, Examples: [-1, 2, 3]),
(Reputation:INTEGER, Examples: [1, 101, 6792]),
(CreationDate:DATETIME, Examples: [2010-07-19 06:55:26]),
(DisplayName:TEXT, Examples: [Community, Geoff Dalgas, Jarrod Dixon]),
(LastAccessDate:DATETIME, Examples: [2010-07-19 06:55:26]),
(WebsiteUrl:TEXT),
(Location:TEXT, Examples: [on the server farm, Corvallis, OR, New York, NY]),
(AboutMe:TEXT),
(Views:INTEGER, Examples: [0, 25, 22]),
(UpVotes:INTEGER, Examples: [5007, 3, 19]),
(DownVotes:INTEGER, Examples: [1920, 0, 5]),
(AccountId:INTEGER, Examples: [-1, 2, 3]),
(Age:INTEGER, Examples: [37, 35, 28]),
(ProfileImageUrl:TEXT)
]
# Table: postHistory
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(PostHistoryTypeId:INTEGER, Examples: [2, 1, 3]),
(PostId:INTEGER, Examples: [1, 2, 3]),
(RevisionGUID:TEXT, Examples: [e58bf7fd-e60f-4c58-a6e4-dfc91cf98a69]),
(CreationDate:DATETIME, Examples: [2010-07-19 19:12:12]),
(UserId:INTEGER, Examples: [8, 24, 18]),
(Text:TEXT),
(Comment:TEXT),
(UserDisplayName:TEXT, Examples: [user28, user209, Michael Bishop])
]
# Table: comments
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(PostId:INTEGER, Examples: [3, 5, 9]),
(Score:INTEGER, Examples: [5, 0, 11]),
(Text:TEXT),
(CreationDate:DATETIME, Examples: [2010-07-19 19:15:52]),
(UserId:INTEGER, Examples: [13, 37, 5]),
(UserDisplayName:TEXT, Examples: [user28, Statprof, jjgibaja])
]
# Table: postLinks
[
(Id:INTEGER, Primary Key, Examples: [108, 145, 217]),
(CreationDate:DATETIME, Examples: [2010-07-21 14:47:33]),
(PostId:INTEGER, Examples: [395, 548, 375]),
(RelatedPostId:INTEGER, Examples: [173, 539, 30]),
(LinkTypeId:INTEGER, Examples: [1, 3])
]
# Table: badges
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(UserId:INTEGER, Examples: [5, 6, 8]),
(Name:TEXT, Examples: [Teacher, Student, Editor]),
(Date:DATETIME, Examples: [2010-07-19 19:39:07])
]
【Foreign keys】
votes.PostId=posts.Id
votes.UserId=users.Id
tags.ExcerptPostId=posts.Id
posts.LastEditorUserId=users.Id
posts.OwnerUserId=users.Id
posts.ParentId=posts.Id
postHistory.PostId=posts.Id
postHistory.UserId=users.Id
comments.PostId=posts.Id
comments.UserId=users.Id
postLinks.PostId=posts.Id
postLinks.RelatedPostId=posts.Id
badges.UserId=users.Id

    【Question】
    How many users received commentator badges in 2014? Commentator is the name of the badge; year(Date) = 2014;

    【Evidence】
    Commentator is the name of the badge; year(Date) = 2014;

    Please read and understand the database schema carefully, and generate an executable SQL based on the user's question and evidence. 

SQL: SELECT COUNT(Id) FROM badges WHERE Name = 'Commentator' AND STRFTIME('%Y', Date) = '2014'