我有一个具有以下结构的表:
Contents (
id
name
desc
tdate
categoryid
...
)
Run Code Online (Sandbox Code Playgroud)
我需要对这个表中的数据做一些统计。例如,我想通过分组和该类别的 id 来获取具有相同类别的行数。此外,我想n按降序限制它们的行,如果有更多可用类别,我想将它们标记为“其他”。到目前为止,我已经对数据库提出了 2 个查询:
n按降序选择行:
SELECT COALESCE(ca.NAME, 'Unknown') AS label
,ca.id AS catid
,COUNT(c.id) AS data
FROM contents c
LEFT OUTER JOIN category ca ON ca.id = c.categoryid
GROUP BY label
,catid
ORDER BY data DESC LIMIT 7
Run Code Online (Sandbox Code Playgroud)
选择其他行作为一:
SELECT 'Others' AS label
,COUNT(c.id) AS data
FROM contents c
LEFT OUTER JOIN category ca ON ca.id = c.categoryid
WHERE c.categoryid NOT IN ($INCONDITION)
Run Code Online (Sandbox Code Playgroud)
但是当我在 db 表中没有任何类别组时,我仍然会得到一个“其他”记录。是否可以在一个查询中进行,并使“其他”记录可选?