"That works perfectly,"
Nope it doesn't, the data from that query is complete that just looks like it makes sense. 🙂
The only 'real' data you get is the count, the min and the max.
obviously it is not possible to fetch the author or the title in this query, because you are not group-ing on those. There could be a hundred titles for each pid, sql cannot know.
So the only way to do this is to run this query with only the count, pid, min and max, and then run two seperate queries to fetch the author and title for each set of pid,min and max values.
You can condense all that back to two queries using a temporary table, but then you'd need a thrid queri to get the data out in the right order.