首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对具有两个不同日期条件的列中的所有行进行计数

对具有两个不同日期条件的列中的所有行进行计数
EN

Stack Overflow用户
提问于 2020-03-30 15:52:08
回答 2查看 39关注 0票数 0

我正在尝试将两个带有日期条件的计数查询(如下所示)转换为一个查询。

代码语言:javascript
运行
复制
SELECT COUNT(*) as yesterday FROM orders WHERE DATE(timedate) = DATE(NOW() - INTERVAL 1 DAY)
SELECT COUNT(*) as yesterday FROM orders WHERE DATE(timedate) = DATE(NOW() - INTERVAL 2 DAY)

Following the advice of another answer我创建了以下代码,但在语法方面似乎不起作用,我也不太确定原因。有没有其他方法可以做到这一点?我在这个问题上找不到类似的问题

代码语言:javascript
运行
复制
SELECT 
    SUM(IF(DATE(timedate) = DATE(NOW() - INTERVAL 1 DAY))) AS testcount1,
    SUM(IF(DATE(timedate) = DATE(NOW() - INTERVAL 2 DAY))) AS testcount2
FROM 
    orders
EN

回答 2

Stack Overflow用户

发布于 2020-03-30 15:55:40

你想要条件聚合。我将该查询表述为:

代码语言:javascript
运行
复制
SELECT 
    SUM(
        timedate >= CURRENT_DATE - INTERVAL 1 DAY
        and timedate < CURRENT_DATE
    ) AS testcount1,
    SUM(
        timedate >= CURRENT_DATE - INTERVAL 2 DAY
        and timedate < CURRENT_DATE- INTERVAL 1 DAT
    ) AS testcount2
FROM orders

详细信息:

  • 这使用了MySQL的一个很好的功能,它在数字上下文中将false/true条件求值为0/1
  • 没有日期函数应用于timedate列:相反,我们进行litteral日期比较。这要高效得多,因为数据库可能会利用datetime列

上的索引

您可能还希望将WHERE子句添加到查询中:

代码语言:javascript
运行
复制
WHERE 
    timedate >= CURRENT_DATE - INTERVAL 2 day
    AND timedate< CURRENT_DATE
票数 1
EN

Stack Overflow用户

发布于 2020-03-30 15:57:37

您缺少IF表达式的输出值。此外,您还应该使用CURRENT_DATE(),这样就不需要转换为DATE

代码语言:javascript
运行
复制
SELECT 
    SUM(IF(DATE(timedate) = CURRENT_DATE() - INTERVAL 1 DAY, 1, 0)) AS testcount1,
    SUM(IF(DATE(timedate) = CURRENT_DATE() - INTERVAL 2 DAY, 1, 0)) AS testcount2
FROM 
    orders

请注意,MySQL在数值上下文中将布尔表达式视为1 (true)或0 (false),因此您实际上可以对表达式执行SUM操作,而不需要IF

代码语言:javascript
运行
复制
SELECT 
    SUM(DATE(timedate) = CURRENT_DATE() - INTERVAL 1 DAY) AS testcount1,
    SUM(DATE(timedate) = CURRENT_DATE() - INTERVAL 2 DAY) AS testcount2
FROM 
    orders
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60926157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档