mysql - sql查询按月统计2016年的twitter评论

标签 mysql sql

我想列出 2016 年按月发布的推文数量。我是 SQL 新手,但尝试过不同的方法来执行此操作。以下是我的最新尝试。我不断收到一条消息,指出我没有正确使用datelogged。最后,我不确定如何格式化 TotalTweet_Cnt

Twitter 中日期的格式如下:MESSAGE_POSTED_TIME: 2015-08-06 21:48:34。仅供引用----列名=MESSAGE_POSTED_TIME;表名称=DTrumpCampaign_Tweets

Select
    Year(DATELOGGED), 
    Sum(Case When Month(DATELOGGED) = 1 Then 1 Else 0 End) Jan,
    Sum(Case When Month(DATELOGGED) = 2 Then 1 Else 0 End) Feb,
    Sum(Case When Month(DATELOGGED) = 3 Then 1 Else 0 End) Mar
From
    DTrumpCampaign_Tweets
Group By
    Year(DATELOGGED);

我希望我的表格格式如下

Month(2016)     Tweet_Cnt   
Jan               25
Feb              100
Mar              200
total            325

非常感谢您的帮助。 谢谢。

最佳答案

假设您只需要 2016 年的数据。

<小时/>
SELECT
    (CASE WHEN t.`month` IS NULL THEN 'total'ELSE   t.monthName END) AS 'Month(2016)',
    t.Tweet_Cnt
FROM
    (
        SELECT
            MONTHNAME(DATELOGGED) AS monthName,
            YEAR (DATELOGGED) `year`,
            MONTH (DATELOGGED) `month`,
            COUNT(*) Tweet_Cnt
        FROM DTrumpCampaign_Tweets
        WHERE   YEAR (DATELOGGED) = '2016'
        GROUP BY `year`,`month` WITH ROLLUP
        LIMIT 13
    ) t;
<小时/>

Demo with some sample data

<小时/>

您将得到如下所示的输出结构:

| Month(2016) | Tweet_Cnt |
|-------------|-----------|
|     January |         1 |
|    February |         2 |
|       March |         1 |
|       April |         1 |
|         May |         1 |
|        June |         1 |
|        July |         1 |
|      August |         1 |
|   September |         1 |
|     October |         1 |
|    November |         1 |
|    December |         1 |
|       total |        13 |
<小时/>

更多:

如果您希望月份名称仅包含前三个字母,则只需更改上述查询中的相应行,如下所示:

更改此行: SELECT MONTHNAME(DATELOGGED) AS MonthName,

为此: SELECT DATE_FORMAT(DATELOGGED,"%b") AS MonthName,

<小时/>

Demo of this modified query

<小时/>

关于mysql - sql查询按月统计2016年的twitter评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36169927/

相关文章:

mysql - SQL - 如何获得每个部门的平均员工工资?

java - 如何使用 JPA ManyToMany 防止连接表中的重复条目

php - 插入前检查日期时间字段

php - 使用 currancy 格式的字段将 CSV 导入 MYSQL

java - 使用联接将表 2 和表 3 中的数据添加到表 1 时出现 MySQL 查询问题

mysql - 选择具有多个限制的值

mysql - 将一张 table 与另外 3 张 table 合并

mysql - Mysql中的列id

SQL 查询以查找 2 个带有组的表之间的缺失数据

sql - postgresql SELECT 1 value and count(value),但将计数限制为 1