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篇。MSSQL,获得列A中每列B列的最大值
我每隔几十年就需要一次,得到写MOST文章的人。结果应该是这样的:
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
笔者认为名称和的AuthorID 公布持有的pubId和ArticleName的 著作持有的AuthorID和PubID的
而我被卡住了。所以我的问题是,我如何获得每十年编写大多数文章的作者?