mysql - SQL COUNT 零问题

标签 mysql sql count

我在通过 SQL 查询计算零值时遇到了问题。尽管在网站上提出了类似的问题,但我似乎无法让它与我的查询一起使用。

我有一个包含某些字符串的数据库,例如“{TICKER|IBM}”,我将其称为代码字符串。目标是计算每天的 ticker-strings 数量。

我的数据库表“tweets”包括行“tweet_id”、“创建于”(dd/mm/yyyy hh/mm/ss) 和“已处理的文本”。代码字符串,例如“{TICKER|IBM}”,位于“已处理文本”行内。

因此,为了计数,我进行了以下 SQL 查询。

SELECT COUNT( DISTINCT `tweet_id` ) , DATE( `created_at` )
FROM `tweets`
WHERE `processed_text` LIKE '%{TICKER|IBM}%'
GROUP BY DATE( `tweets`.`created_at` )

此查询返回每个日期不同推文 ID 的数量,但忽略计数为零的日期。我知道这可以归咎于我的 SQL 查询中没有使用“LEFT JOIN”,但我仍然无法为这个问题创建一个有效的 SQL 查询(由于我的 SQL 知识有限)。

感谢评论者的更新:我将创建一个包含日期的表格(其中没有 hh/mm/ss)。如果它被称为“日期”,有人可以向我解释我应该如何链接到这个表吗?

最佳答案

您需要将日期表与返回计数的子查询左连接:

SELECT d.date, IFNULL(t.count, 0) AS tweet_count
FROM all_dates AS d
LEFT JOIN (
    SELECT COUNT(DISTINCT tweet_id) AS count, DATE(created_at) AS date
    FROM tweets
    WHERE processed_text LIKE '%{TICKER|IBM}%'
    GROUP BY date) AS t
ON d.date = t.date

此外,如果 tweet_id 是唯一列,则不需要 COUNT(DISTINCT tweet_id),只需使用 COUNT(*) .

关于mysql - SQL COUNT 零问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24475495/

相关文章:

javascript - 禁用提交,但首先提交表单

mysql - 如何以不区分大小写的方式在 MySQL 中进行搜索

mysql 正则表达式计数

mysql - 如何计算每个不同组内的行数?

r - x 没有适用于 'tbl_vars' 的方法应用于类 "c(' double', 'numeric' ) 的对象”

php - 无法使用指定的键从数据库访问解码的 json 数据

mysql - Xml To MYSQL 导入使用mysql过程

php - 将数据插入具有相同主键的多个表

SQL Server : Trace won't create file

sql - Scala with spark - "javax.servlet.ServletRegistration"的签名者信息与同一包中其他类的签名者信息不匹配