在编写博客网站是的是,常常在侧边栏需要展示按年月统计文章发布的数量,或者在后台统计出各分类下分文章数量,请看如下SQL实现。

按年、月统计发布的文章数

SELECT
    YEAR(FROM_UNIXTIME(created_at)) year,
    COUNT(*) published
FROM house
GROUP BY year;

SELECT
    YEAR(FROM_UNIXTIME(created_at)) year,
    MONTHNAME(FROM_UNIXTIME(created_at)) month,
    COUNT(*) published
FROM house
GROUP BY year,month;

假设有表 house ,使用 created_at 字段,即数据录入时间。如果记录时是使用integer,那么请使用 FROM_UNIXTIME 转成 'yyyy-mm-dd hh:ii:ss' 的日期形式,以便供 YEAR()MONTHNAME() 函数调用。

统计分类下的文章总数

SELECT 
    article_category.title_zh,
    count(*) as articles
FROM article
LEFT JOIN article_category
ON article.article_category_id = article_category.id group by article_category.title_zh ORDER BY article_category.sort ASC;


假设有 articlearticle_category 表,其中 article_category.idarticle.article_category_id 一对多关联,通过一个左链接统计出每个分类下现有数据的和。


最后编辑: 于 1年前

标签

评论列表(0)

    暂无评论