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 |
この表は、ある人が 10 年間に書いた記事の数を示しています。たとえば、ベルは 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 は name と AuthorID を保持します Publication は pubID を保持し、ArticleName Authored は AUthorID と pubID を保持します
そして、私は立ち往生しています。私の質問は、各 10 年間で最も多くの記事を書いた著者をどのように取得するかということです。