我有以下 SQL 查询。
SELECT p.`id`, p.`data`, p.`title`, p.`creation_date`, t.`name` AS 'tag'
FROM `post_tag` pt, `post` p, `tag` t
WHERE p.`id` = pt.`post`
AND pt.`tag` = t.`id`
AND p.`author` <> '1'
AND (t.`name` = 'Programming'
OR t.`name` = 'Photography'
OR t.`name` = '[...]')
ORDER BY p.`creation_date`, t.`name` DESC
我的结果表如下所示:
正如我在屏幕截图中强调的那样,重复 ID 为 76 和 77 的行。在我的应用程序中,这是衡量“受欢迎程度”的标准。我希望能够:
- 将“数据”重复为一行的行分组(我知道我可以使用 GROUP BY 来做到这一点)
- 首先按“受欢迎程度”对行进行排序,然后按“creation_date”排序。因此,如果有 3 行具有相同的“数据”,我希望首先返回它,然后是计数为 2 的行,等等。