SQL | Aggregation and grouping exercise | Show the number of episodes written by each author

This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.

Software ==> SQL  (198 exercises)
Version ==> Any version of SQL Server
Topic ==> Aggregation and grouping  (8 exercises)
Level ==> Relatively easy
Subject ==> SQL training
Before you can do this exercise, you'll need to download and unzip this file (if you have any problems doing this, click here for help).

You need a minimum screen resolution of about 700 pixels width to see our exercises. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.

If you haven't already done so, run the script in the above folder to generate the Doctor Who database.

The following diagram shows how the authors and episodes tables are related:

Authors and episodes

You're probably familiar with this by now!

Use this to show for each author:

  • the number of episodes they wrote;
  • their earliest episode date; and
  • their latest episode date.

If you sort these so that the most prolific authors come first, here are the first few of the 25 rows you should see:

Authors and episodes

Those who know their Doctor Who won't be surprised at the two leaders.


Save this query as Blink was the best, then close it down.

You can unzip this file to see the answers to this exercise, although please remember this is for your personal use only.
This page has 4 threads Add post
15 Jan 22 at 17:43

select ta.AuthorName,count(te.EpisodeID) countE,min(EpisodeDate) EarliestDate,MAX(EpisodeDate) LatestDate
from tblAuthor ta inner join tblEpisode te
on ta.AuthorId=te.AuthorId
group by ta.AuthorName
order by countE desc

08 Nov 21 at 13:23

with aut as (
select  count(title) as [Number of episodes wrote],AuthorId from tblEpisode
group by AuthorId
select a.Authorname,b.[Number of episodes wrote],max(c.episodeDate) as [Latest Episode Date],min(c.episodedate) as [Earliest Episode Date] from tblAuthor a
inner join aut b on a.AuthorId=b.authorId
inner join tblEpisode c on a.AuthorId=c.AuthorId
group by AuthorName,[Number of episodes wrote]
order by [Number of episodes wrote] desc

21 Jan 21 at 02:47

SELECT [AuthorName], COUNT([EpisodeId]) AS [# OF EPISODES],
       MIN([EpisodeDate]) AS [Earliest epi Date],
       max([EpisodeDate]) as [latest epi Date]
FROM   [dbo].[tblAuthor] AS A INNER JOIN [dbo].[tblEpisode] AS E
       ON A.AuthorId = E.AuthorId
GROUP BY [AuthorName]
order by [# OF EPISODES] desc;

20 Jul 20 at 12:22

select AuthorName, count(EpisodeNumber), EpisodeDate as [Earliest date], EpisodeDate as [Latest date] from 
                                tblAuthor INNER JOIN tblEpisode ON tblAuthor.AuthorId=tblEpisode.AuthorId
                                group by AuthorName, EpisodeDate
                                order by [Earliest date] asc, [Latest date] desc

What is the problem with my code?

19 Nov 20 at 07:27

SELECT a.AuthorName,COUNT(a.AuthorId) AS Episodes,MIN(B.EpisodeDate) AS EarlistDate,MAX(B.EpisodeDate) AS LatestDate from tblAuthor a
INNER JOIN tblEpisode b on b.AuthorId=a.AuthorId 
GROUP BY a.AuthorName,a.AuthorId 
ORDER BY a.AuthorName ASC