2016-12-01 101 views
0

我在大学项目的堆栈交换数据库上工作。我想每年获得最受欢迎的标签。如何获得计数的最大值

我提出这个要求:

SELECT tagName 
    , year(creationDate) AS annee 
    , count(tagName) AS nbApparitions 
FROM tags 
JOIN postTags 
ON (tags.Id = postTags.tagId) 
JOIN posts 
ON (postTags.postId = posts.Id) 
GROUP BY tagName, year(creationDate) 

此请求的结果为每个标签和每一年的数量。我想这样:

2016 JavaScript 123456 
2015 PHP 123456 
2014 HTML 123456 
... 

在此先感谢!

回答

2
SELECT tagName , annee , MAX(nbApparitions) 
FROM 
    (
    SELECT tagName 
     , year(creationDate) AS annee 
     , count(tagName) AS nbApparitions 
    FROM tags 
    JOIN postTags ON (tags.Id = postTags.tagId) 
    JOIN posts ON (postTags.postId = posts.Id) 
    GROUP BY tagName, year(creationDate) 
)A 
GROUP BY tagName , annee 
+0

我已经使用这样的请求,但它不工作(同样的问题) – Mattasse

+0

@Mattasse你这是什么意思不起作用?输出有什么问题? –

+0

这个查询返回的结果与我的错误查询相同 – Mattasse