id name NumofPup Decade
---|-----|------------|--------|
1 | Ace | 7 | 1930 |
2 | Bel | 6 | 1930 |
3 | Cha | 2 | 1930 |
4 | Bel | 10 | 1980 |
5 | Dew | 6 | 1980 |
6 | Bel | 2 | 1990 |
该表显示了一个人十年内写了多少篇文章。例如,贝尔在 1930 年写了 6 篇文章,在 1980 年写了 10 篇,在 1990 年写了 2 篇。
我需要每隔几十年,找到写最多文章的人。结果应该是这样的:
id name NumofPup Decade
---|-----|------------|--------|
1 | Ace | 7 | 1930 |
4 | Bel | 10 | 1980 |
6 | Bel | 2 | 1990 |
以下是我到目前为止生成表 1 的代码:
SELECT authDec.name, COUNT(authDec.name) as NumOfPupPerDECADE, authDec.decade
FROM
(
SELECT a.name, year, (year/10)*10 AS decade
FROM publication pub, author a, authored auth
WHERE year IS NOT NULL and pub.pubId = auth.pubId and auth.id = a.id
) as authDec
GROUP BY authDec.name, authDec.decade
ORDER BY authDec.decade, NumOfPupPerDECADE DESC
Author 保存姓名和 AuthorID Publication 保存 pubID 和 ArticleName Authored 保存 AUthorID 和 pubID
我被困住了。所以我的问题是,我如何获得每十年撰写最多文章的作者?